【アクト】

act(GitHub Actions ローカル実行) とは?

最終更新:
💡 GitHub Actionsの動きを、まず手元で試す道具

GitHub Actionsのワークフローを手元で実行するツール。GitHubへ変更を送る前に動作を試せるが、実行環境や機能の違いがあるため、GitHub上の実行結果まで保証するものではない。

📌 このページのポイント
act:まず手元でワークフローを試す workflow .yml 手元のPCでact Docker 通常の実行 テスト 結果を確認 GitHub上の実行 GitHubのランナー 結果を確認 環境差を確認 手元の成功だけでは結果を保証しない
同じワークフロー定義を手元とGitHub上で試す例。環境・機能には違いがあり、所要時間やpush回数は固定ではない。
ひよこ ひよこ
actって何ができるの?
ペンギン先生 ペンギン先生
GitHub Actionsのワークフローを自分のPCで動かせるよ。ワークフローの修正をGitHubへ送る前に、手元で試せるんだ。
ひよこ ひよこ
使うとすぐに結果が出る?
ペンギン先生 ペンギン先生
GitHubへ送って結果を待つ回数を減らせるけど、所要時間は処理や環境次第だよ。初回はイメージやアクションの取得も必要になるんだ。
ひよこ ひよこ
GitHubとまったく同じ環境なの?
ペンギン先生 ペンギン先生
通常はDockerのランナー用イメージで動くけど、GitHubの仮想マシンと同じではないよ。既定のイメージには入っていないツールもあるんだ。
ひよこ ひよこ
ジョブやイベントを選べる?
ペンギン先生 ペンギン先生
act -j testでtestというジョブIDを指定できるし、act pull_requestでイベントも選べるよ。必要なイベント情報はファイルで渡す場合もあるんだ。
ひよこ ひよこ
手元で成功すれば、GitHubでも成功する?
ペンギン先生 ペンギン先生
そうとは限らないよ。たとえばconcurrencyやjob.permissionsはactでは無視される。ローカルでの確認に加えて、GitHub上の結果も確認しよう。
もっと詳しく知りたい人へ

シークレットや外部サービスを使うワークフローはどう試す?

必要な値をactへ渡して実行する。シークレットの安全な入力方法やファイル指定は公式Usage guideを確認しよう。ローカルでも実際のコマンドが動くので、デプロイや通知などを含むジョブ・ステップは、公式のスキップ方法やテスト用の設定を検討する。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「act」って出てきたら「GitHub Actionsをローカルで試すツール」と思えばだいたいOK!
📖 おまけ:英語の意味
「act」 = GitHub Actionsのローカル実行ツールの名前
💬 公式の紹介は「Think globally, act locally」という言葉を掲げているよ。GitHub Actionsの定義を手元のタスク実行にも使うツールだよ

参考資料

← 用語集にもどる