【アクト】

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

💡 CIの「リハーサル」を自分のPCでサクッとできる便利屋さん
📌 このページのポイント
act:GitHub Actionsをローカルで実行 従来のフロー(時間がかかる) コード修正 git push CI実行(数分) 結果確認 再修正… 何度もpush → 待機を繰り返す actを使ったフロー(高速) コード修正 act(ローカル実行) 即座に結果 確認後にpush pushは1回だけ! CI待ち時間を大幅削減
actのイメージ
ひよこ ひよこ

actって何をするツールなの?

ペンギン先生 ペンギン先生

GitHub Actionsワークフローを自分のパソコンで実行できるツールだよ。普通はコードをpushしてGitHub上でCIが動くのを待つんだけど、actを使えばpushする前にローカルで試せるんだ

ひよこ ひよこ

それってどんなときに嬉しいの?

ペンギン先生 ペンギン先生

ワークフローを修正するたびにpushして数分待って結果を見て…を繰り返すのは大変でしょ?actなら手元で数秒〜数十秒で結果が分かるから、試行錯誤のスピードが圧倒的に上がるんだ

ひよこ ひよこ

どうやって動いてるの?本物のGitHub Actionsと同じ環境なの?

ペンギン先生 ペンギン先生

Dockerコンテナを使ってGitHub Actionsのランナー環境を再現しているよ。ただし完全に同一ではなくて、一部のGitHubコンテキスト変数やシークレットは手動で設定する必要があるんだ

ひよこ ひよこ

特定のジョブだけ実行したりもできるの?

ペンギン先生 ペンギン先生

できるよ!`act -j ジョブ名`で特定のジョブだけ実行できるし、`act pull_request`のようにイベントの種類も指定できる。ワークフローが複雑になるほど、部分実行できるのがありがたいんだ

ひよこ ひよこ

注意点とかってあるのかな?

ペンギン先生 ペンギン先生

いくつかあるよ。まずDockerイメージが大きいのでディスク容量に注意が必要。あとGitHub独自のservices構文やmatrix strategyの一部は未対応だったりする。それでも「ワークフローの基本的な構文ミスを事前に潰す」という用途だけでも十分に価値があるツールだね

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「act」って出てきたら「GitHub Actionsをローカルで試せるツール」と思えればだいたいOK!
📖 おまけ:英語の意味
「act」 = 行動する・実行する
💬 「Actions」のactに由来していて、「ローカルでActionsを実行(act)する」というダブルミーニングだよ
← 用語集にもどる