概要
- GitHub Actions をローカルで実行できるツール act の紹介
- 迅速なフィードバックと Makefile 代替としての利用が可能
- VS Code拡張機能 でエディタ内から直接操作可能
- Dockerを活用して GitHub本番環境 に近い実行環境を再現
- 導入・貢献方法やサポートチャネルも案内
GitHub Actionsをローカルで動かす:actの活用提案
act は、GitHub Actionsを ローカル環境 で実行するためのツール 提案
主な目的は 2つ ・迅速なフィードバックを得ること ・Makefileの代替として ローカルタスクランナー 化すること 提案
ローカル実行のメリット
.github/workflows/の変更を 即時テスト できるため、毎回commit/pushする必要がない 確認環境変数 や ファイルシステム がGitHub本番環境と一致するよう自動設定 確認
Makefileの繰り返し記述を省略し、 ワークフロー定義 をそのままタスクランナーとして利用可能 提案
VS Code拡張機能による運用
GitHub Local Actions というVS Code拡張機能を使うことで、actをエディタ内から直接操作可能 確認
ワークフローの ローカル実行・テスト をエディタから離れずに完結できる 効率化
actの動作仕組み
actは
.github/workflows/内のGitHub Actions定義を読み取り、 実行すべきアクション を決定する 流れ把握Docker APIを利用し、 必要なイメージ をpullまたはbuildすること 実行手順
ワークフロー内で定義された 依存関係 に基づき、実行経路(execution path)を決定すること 実行手順
Docker APIを用い、各アクションに対して コンテナ を起動し、準備したイメージで実行すること 実行手順
環境変数 や ファイルシステム はGitHub本番と同様に自動構成 再現性確保
サンプルとドキュメント
Sample Repository で実際の動作例を確認可能 体験
詳細な利用方法は act User Guide でドキュメント化 参照
サポートと貢献
Gitter で質問・サポートを受け付け 相談
貢献希望者は contributing guidelines を参照し、開発参加すること 参加
ソースからの手動ビルド手順
Goツールチェーン(1.20+) をインストールすること 準備
リポジトリを git clone で取得すること 準備
make testで ユニットテスト を実行すること 確認make installで ビルド・インストール を行うこと 導入
関連リンク
今週、Rubyテストの変なCIエラーをデバッグするために、もう一度これに挑戦してみたんだけど、MシリーズのMacを使ってるからプラットフォームの不一致があってさ。それに、アクションランナーとしてデポ画像を使ってるから、ドライランの段階を超えて動かすことができなかった。CIランナーとローカルのDockerイメージの間には、ほんとにたくさんの違いがあるんだよね。catthehackerのイメージも試してみたけど、15GB以上あって、それでも動かなかった。結局、諦めちゃった。