act について
act は開発者がリポジトリにプッシュすることなく、ローカル環境で GitHub Actions ワークフローを実行できます。複数のイベントタイプとジョブ設定に対応し、CI/CD パイプラインの迅速な反復とデバッグが可能です。
主な機能
- 01ローカルコンテナで GitHub Actions ワークフローを実行
- 02pull_request や push など複数のトリガーイベントに対応
- 03特定のジョブを指定して実行し、フィードバック を高速化
- 04既存の開発ツールとの統合対応
活用シーン
- 01コミット前にローカルで CI パイプライン設定を検証
- 02ワークフロー ロジックと環境変数をデバッグ
- 03リポジトリへのプッシュを減らして GitHub Actions をテスト
インストール
OS またはパッケージマネージャーを選び、コマンドをターミナルで実行します。
インストール後にact --versionを実行して確認します。
コマンド例
よく使うコマンドを使う順に並べています。
詳細

概要

「グローバルに考え、ローカルで
actを実行する」
GitHub Actions をローカルで実行しましょう!なぜ実行したいのでしょうか?理由は2つあります。
- 素早いフィードバック -
.github/workflows/ファイルに加えた変更(または埋め込みの GitHub Actions への変更)をテストするたびにコミット/プッシュする代わりに、actを使ってアクションをローカルで実行できます。環境変数 と ファイルシステム は、GitHub が提供するものと一致するように設定されます。 - ローカルタスクランナー - 私は make が大好きです。しかし、同じことを繰り返すのは嫌いです。
actを使えば、.github/workflows/で定義した GitHub Actions をMakefileの代わりに利用できます!
ヒント
VS Code から Act を直接管理して実行できるようになりました!
GitHub Local Actions Visual Studio Code 拡張機能をご覧ください。この拡張機能を使えば、エディターを離れることなくactの機能を活用して、ワークフローをローカルで実行・テストできます。
どのように動作するか
act を実行すると、.github/workflows/ から GitHub Actions を読み込み、実行する必要のあるアクションのセットを特定します。Docker API を使って、ワークフローファイルで定義された必要なイメージを取得またはビルドし、最後に定義された依存関係に基づいて実行経路を特定します。実行経路が決まると、準備したイメージを使って、各アクション用のコンテナーを Docker API で実行します。環境変数 と ファイルシステム は、GitHub が提供するものと一致するように設定されます。
サンプルリポジトリ で実際に動作を見てみましょう!

Act ユーザーガイド
詳しいドキュメントについては、act ユーザーガイドをご覧ください。
サポート
お困りですか?ディスカッションで質問してください!
貢献
act への貢献に興味がありますか?ぜひご参加ください!貢献ガイドラインをご覧ください。
ソースから手動でビルドする
- Go ツール 1.20 以降をインストールします - (https://golang.org/doc/install)
- このリポジトリをクローンします
git clone [email protected]:nektos/act.git make testで単体テストを実行します- ビルドしてインストールします:
make install