本文を読み飛ばす

podman + act で Github Actionsをデバッグする

ライブラリのCIが無料でできそうだったので、
Github Actionsをセットアップしてみました。

でも、デバッグが面倒...
ローカルでやるには act というソフトが必要になります。

セットアップが大変そう...というか、結構手間取ったので
構築手順をメモしていきます。

dockerいれるの面倒なのでpodmanってどうなんだろ?
という感じでpodmanでやってみましたが、
それのせいでも更に困った状況にはなりました。

  • podmanをWSL(debian)から使ってactを動かすのはうまくいきました。
  • act + docker in podman は私は失敗しました。動くようにできるとは思います。
  • podman desktopや、docker desktopはWindowsのアプリ入れたくなかったので試してません。
  • docker-ceをWSLで動かすのも試してません。

act使うのにgo入れたりして環境を変更するのが嫌かな、
と思ってpodmanにdocker立ち上げようとしたのが
うまくいかずに時間取られました。

まずはpodmanの準備をします。
actはdocker APIを(多分)使うので
socketを作成しておきます。

(WSL-debian)
$ sudo apt install podman
$ podman system service /tmp/podman.sock
$ export DOCKER_HOST=unix:///tmp/podman.sock

余談ですが、 podmanはデーモンレスなのでsocketがないことに
気づくのにも時間がかかりました。
色々違うんだなぁ...
あと、daemonないのは便利そうだ...


次にgoを準備します。

actは1.20以上で動作しているとのこと。 debianのgolangパッケージは1.19なので
今回は直接インストールします。

(WSL-debian)
$ wget https://go.dev/dl/go1.22.4.linux-amd64.tar.gz
$ tar xvf go1.22.4.linux-amd64.tar.gz -C /usr/local
$ export PATH=$PATH:/usr/local/go/bin

actを準備して実行します。

$ git clone https://github.com/nektos/act.git act
$ cd act
$ make install

これでpodman + actで .github/workflows/jobs.yml
デバッグできるようになりました。

ポイントは podman の socketを作成するのと
DOCKER_HOST の設定になると思います。

Github Pagesのデバッグはできないみたい?
act についてよくわかってませんが
まずはここまで。

コメント

Comments powered by Disqus
宣伝: