GitHub Actions をローカルで実行する方法を備忘録として残しておく

前提

  • Mac OS
    • OS Version: Sonoma 14.4.1
    • Chip: Apple M1
  • Container 管理ツール
    • Rancher Desktop
  • 使用ツール
  • GitHub Actions
    • 既に作成済想定

act のインストール

Home Brew でインストールする

brew install act

使用方法

  1. act で実行可能な一覧を表示する
act -l
WARN  ⚠ You are using Apple M-series chip and you have not specified container architecture, you might encounter issues while running act. If so, try running it with '--container-architecture linux/amd64'. ⚠
Stage  Job ID  Job name  Workflow name  Workflow file  Events
0      ci      ci        ci             ci.yml         push,pull_request
  1. act コマンドを使用して実行する

例. push 時の Job 確認
※M1 なので ‘–container-architecture linux/amd64’ を付与して実行

act push --container-architecture linux/amd64

Trouble Shooting

docker host に関するエラー

act push --container-architecture linux/amd64
INFO[0000] Using docker host '127.0.0.1', and daemon socket '127.0.0.1'
[ci/ci] 🚀  Start image=catthehacker/ubuntu:act-latest
[ci/ci]   🐳  docker pull image=catthehacker/ubuntu:act-latest platform=linux/amd64 username= forcePull=true
Error: failed to connect to docker daemon: unable to parse docker host `127.0.0.1`

参考 を実施する

export DOCKER_HOST=$(docker context inspect --format '{{.Endpoints.docker.Host}}')

マウントできないに関するエラー

act push --container-architecture linux/amd64
INFO[0000] Using docker host 'unix:///Users/<<User Name>>/.rd/docker.sock', and daemon socket 'unix:///Users/<<User Name>>/.rd/docker.sock'
[ci/ci] 🚀  Start image=catthehacker/ubuntu:act-latest
[ci/ci]   🐳  docker pull image=catthehacker/ubuntu:act-latest platform=linux/amd64 username= forcePull=true

Error: failed to list containers: error during connect: Get "http://%2FUsers%2F<<User Name>>%2F.rd%2Fdocker.sock/v1.45/containers/json?all=1": EOF

参考 を実施する

--container-daemon-socket -