ローカル CI
プッシュ → 待つ → 赤いバツ → 修正 → プッシュのループは、一往復ごとに 10 分を 無駄にします。act を使えば、同じワークフローがあなたの マシン上の Docker コンテナで動き、Gitcito がそれを操作します。ワークフローを 選び、実行を押して、CI が出力するはずの同じログを眺める — 何かがマシンの外へ 出る前に。

ランタイムの同梱ではなく、連携です
Gitcito は意図的に act も Docker も同梱しません — コンテナランタイムを
引き連れたアプリは、git クライアントの対極です。これはオプトインの連携機能です。
設定 → 連携(またはダイアログ内)で有効にすると、Gitcito が何がインストール
済みかを検出し、残りを案内します — brew install act、起動中の Docker
デーモン、それで完了です。有効化されている・act がインストールされている・
Docker に到達できる、の 3 つがすべてそろうまで、何も実行されません。
できること
.github/workflows配下のすべてのワークフローを、そのname:で一覧表示 します。- 実行は act でワークフローを作業ツリーに対して実行します — 未コミット の変更も含めて。それこそが狙いです:プッシュした後ではなく、コミットする前に テストできます。
- 出力はダイアログにライブでストリームされ、停止で実行を打ち切れます。 終了コード 0 なら成功、それ以外はコード付きで失敗と表示されます。
グラフ上のコミットごとの判定

実行が完了すると、その結果はテストしたコミットに留め付けられます。グラフ上の
その行に小さなフラスコが付き、緑または赤で表示されるので、どのコミットが
すでにローカルで CI を生き延びたかが一目でわかります。判定は
refs/notes/gitcito-ci 配下の git ノートとして保存されます — あなたのマシンに
ローカルなもので、デフォルトでプッシュされることはありません。
正直さのルール:判定が留め付けられるのは、作業ツリーがクリーンだったとき だけです。未コミットの変更を含む実行は、どのコミットにも含まれない何かを テストしたことになるので、結果はダイアログに表示されますが、何にも印は 付きません。
コミットや範囲をテスト — ブランチを離れずに
ダイアログのコミットや範囲をテストセクションは、いま自分がいない コミットに対してワークフローを実行します。各コミットはシステムの一時 ディレクトリ配下の使い捨てワークツリーに detached でチェックアウトされ、 act はそこで実行され、実行がどう終わってもワークツリーは削除されます — あなたの作業ツリーとブランチは決して動きません。そのチェックアウトは作り からしてまっさらなので、判定は必ずテストしたコミットに留め付けられます。 グラフでコミットを右クリックすると、このコミットでローカル CI を実行を 直接選べます。
コストは、何かが実行される前に提示されます — 後から発覚するのではありません。
リビジョンや範囲(main..HEAD、HEAD~5..、sha)を入力してプレビューを
押すと、指定に一致するコミットの数と、実際に実行される最新の N 件 — 上限 50
の明示的な予算 — を Gitcito が表示します。スイープはそれらを順番に実行し
(act に Docker が加わると、並列実行はマシンを奪い合うほど重いのです)、
各実行のログをストリームし、各コミットの成否をライブで印し、停止は
実行中のものを打ち切りながらコミットの合間で中断します。コミットごとに実際
に数分かかると考えてください。
もうひとつ知っておくべき制限があります。使い捨てワークツリーにはコミットの ファイルは入っていますが、リポジトリのサブモジュールのチェックアウトは 入っていません — 初期化済みサブモジュールに依存するワークフローは、 サブモジュールのない新規クローン上と同じ挙動になります。
制限
- act は GitHub のランナーの非常によくできた模倣であって、完璧ではありません。 GitHub がホストするサービスやシークレット、特殊なランナーイメージを必要とする アクションは、挙動が異なることがあります。ローカルのグリーンは有力な証拠で あって、保証ではありません。
- 実行はリポジトリごとに同時に 1 つだけ。別の実行を始めると、最初の実行は キャンセルされます。
- ワークフロー単位の実行のみです — 個別のジョブやマトリックス、イベントを選ぶ のは act の領分なので、フラグが必要なときは統合ターミナルで 実行してください。
- 初回の実行ではランナーイメージをダウンロードします — 一度だけ時間がかかると 考えてください。
関連項目: ホスティングとプルリクエスト · 統合ターミナル