actとは
- GitHub Actionsをローカルで実行するためのツール
- これにより、いちいちGitHub上でなくても手元環境である程度の検証が可能になる
- とはいえ、GitHub Actionsを完全に再現するものではないため注意
- GitHubリポジトリ: https://github.com/nektos/act
インストール
$ brew install act
初回実行
- 初回実行時はコンテナイメージのスペックをMicro/Medium/Largeの3種類から選ぶよう促される
- いずれにせよ実行環境はUbuntuで、GitHub ActionsのようにmacOSやWindowsは選択できない
- 詳細: https://github.com/nektos/act#runners
$ act
- 初回実行すると
~/.actrc
に設定が保存される
~/.actrc
-P ubuntu-latest=catthehacker/ubuntu:act-latest
-P ubuntu-22.04=catthehacker/ubuntu:act-22.04
-P ubuntu-20.04=catthehacker/ubuntu:act-20.04
-P ubuntu-18.04=catthehacker/ubuntu:act-18.04
環境変数/シークレットの設定
- GitHub Actionsの設定で環境変数やシークレットを使用している場合に必要な設定
- 実行時にオプションとして渡すことも可能だが、あらかじめ設定に書いておくと便利
- 詳細
~/.actrc
-P ubuntu-latest=catthehacker/ubuntu:act-latest
-P ubuntu-22.04=catthehacker/ubuntu:act-22.04
-P ubuntu-20.04=catthehacker/ubuntu:act-20.04
-P ubuntu-18.04=catthehacker/ubuntu:act-18.04
--secret-file .act.secrets
--env-file .act.env
~/.act.secrets
GITHUB_TOKEN=XXXXXXXXXX
~/.act.env
FOO=foo
BAR=bar
BAZ=baz
- GitHub Actionsの場合、GITHUB_TOKENを自動で読み込んでくれるが、actの場合はそうはいかないので、事前にPAT(Personal access tokens)を生成しておく必要がある
- 最低でもrepoの権限が必要らしい
- 詳細: https://docs.github.com/ja/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token
その他コマンド
# 一覧の表示
$ act -l
Stage Job ID Job name Workflow name Workflow file Events
0 build build Build main.yml push
# ドライラン
$ act -n