🍤
Ebitengineを使ったコードをGitHub Actionsでテストする際の依存パッケージ
Ebitengine、みなさま使っていますでしょうか?
今回は私がEbitengineを使う中で遭遇したCIにおけるテストの問題について解決策を書いていこうと思います。
さっそくですが、だいたいの人はubuntu-latestを用いて以下のような定義をすると思います。
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v4
with:
go-version-file: "go.mod"
- run: go test ./...
しかし、上記のように安易に go test ./...
するだけでは以下のようなエラーが出てしまいます。
Run go test ./...
# github.com/hajimehoshi/ebiten/v2/internal/cglfw
In file included from ../../../go/pkg/mod/github.com/hajimehoshi/ebiten/v2@v2.6.2/internal/cglfw/native_linbsd.go:14:
./glfw3native.h:104:12: fatal error: X11/extensions/Xrandr.h: No such file or directory
104 | #include <X11/extensions/Xrandr.h>
| ^~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
FAIL
解決策はいたって単純で、以下の記述をyamlに追加すれば良いです。
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install libasound2-dev libgl1-mesa-dev libxcursor-dev libxi-dev libxinerama-dev libxrandr-dev libxxf86vm-dev
これはEbitengineのリポジトリでも以下のように同様の操作を行っているので、過不足は無いと思われます。
ちなみに今回はテスト時の話でしたが、ビルドをGitHub Actionsで行いたいときなどにも同様の対応が必要だと思われます。
何はともあれ、躓いたらEbitengine自体がどうなってるか確認すると吉ですね。
Discussion