--- title: act (nektos/act) 調査レポート tool_name: act tool_reading: アクト category: CI/CD周辺ツール developer: nektos official_site: https://nektosact.com/ date: '2026-03-25' last_updated: '2026-07-26' tags: - CI/CD - GitHub Actions - オープンソース - 開発者ツール description: GitHub Actionsのワークフローをローカル環境で実行できるコマンドラインツール。Dockerを使用してローカルでCI/CDパイプラインをシミュレートする。 quick_summary: has_free_plan: true is_oss: true starting_price: 無料 target_users: - ソフトウェアエンジニア - DevOpsエンジニア - OSSメンテナ latest_highlight: 2026年6月にv0.2.89をリリース。各種依存関係のアップデートによる安定性向上を含む。 update_frequency: 高 evaluation: score: 85 base_score: 70 plus_points: - point: 5 reason: 完全無料でGitHub Actionsのローカル実行環境を提供 - point: 5 reason: 開発サイクルの大幅な短縮(プッシュ不要でテスト可能) - point: 5 reason: 活発なオープンソースコミュニティと頻繁なアップデート minus_points: - point: -3 reason: GitHubホステッドランナーとの完全な互換性はない(一部機能制限あり) - point: -2 reason: Docker環境のセットアップとリソースが必要 summary: GitHub Actionsを利用する開発者にとって必須級のツール。完全な互換性はないものの、開発効率を劇的に向上させる。 links: github: https://github.com/nektos/act deepwiki: https://deepwiki.com/nektos/act codewiki: https://codewiki.google/github.com/nektos/act documentation: https://nektosact.com/introduction.html relationships: parent: GitHub Actions related_tools: - Docker - GitLab CI/CD - Jenkins - Lefthook --- # **act (nektos/act) 調査レポート** ## **1. 基本情報** * **ツール名**: act (nektos/act) * **ツールの読み方**: アクト * **開発元**: nektos (コミュニティ主導のOSS) * **公式サイト**: [https://nektosact.com/](https://nektosact.com/) * **関連リンク**: * GitHub: [https://github.com/nektos/act](https://github.com/nektos/act) * CodeWiki: [https://codewiki.google/github.com/nektos/act](https://codewiki.google/github.com/nektos/act) * ドキュメント: [https://nektosact.com/introduction.html](https://nektosact.com/introduction.html) * レビューサイト: なし (GitHub Stars: 68k+ / 2026年1月時点) * **カテゴリ**: CI/CD * **概要**: GitHub Actionsのワークフロー定義ファイル(`.github/workflows`)を読み込み、Dockerコンテナを使用してローカル環境で実行するコマンドラインツール。「Think globally, act locally」を掲げ、クラウドへのプッシュなしでCI/CDパイプラインのテストを可能にする。 ## **2. 目的と主な利用シーン** * **解決する課題**: * GitHub Actionsの動作確認のために、修正のたびにコミット・プッシュを行う手間と時間の無駄。 * 「コミット→プッシュ→CI失敗→修正」という長いフィードバックループ。 * `Makefile`等のローカルタスクランナーとCI設定の二重管理。 * **想定利用者**: * GitHub Actionsを利用してCI/CDパイプラインを構築するすべての開発者。 * CIのデバッグに時間を取られているエンジニア。 * **利用シーン**: * **CIワークフローのローカルデバッグ**: シンタックスエラーやスクリプトの動作をプッシュ前に手元で確認。 * **ローカルタスクランナー**: `Makefile`の代わりにGitHub Actionsの定義を使ってビルドやテストを実行。 * **クリーンな環境でのテスト**: 依存関係が含まれたDockerコンテナ上でテストを実行し、「自分のマシンでは動く」問題を排除。 ## **3. 主要機能** * **ワークフローのローカル実行**: `.github/workflows/` 内のYAMLファイルを解析し、Docker APIを通じてジョブを実行。 * **イベントトリガーのシミュレーション**: `push` や `pull_request` などのGitHubイベントをローカルで発火させてワークフローを実行。 * **アーティファクトの利用**: アクション間でのデータの受け渡しやアーティファクトの保存・利用をサポート。 * **シークレット管理**: ローカルの `.secrets` ファイルを通じて、APIキーなどの機密情報を安全に注入可能。 * **プラットフォーム指定**: `-P` オプションにより、ジョブを実行するDockerイメージ(Ubuntuなど)をカスタマイズ可能。 * **ドライラン**: 実際の実行を行わずに、どのジョブが実行されるかを確認する機能(`act -n`)。 * **特定のジョブのみ実行**: ワークフロー全体ではなく、特定のジョブを指定して実行可能(`act -j job_name`)。 ## **4. 動作原理・システム構成** * **アーキテクチャ**: ローカルファーストのクライアント・Dockerデーモン構成 * **主要コンポーネントとデータフロー**: * act CLIがプロジェクトルートの`.github/workflows`を解析する。 * 各ジョブに必要なDockerイメージをプルし、コンテナを立ち上げる。 * ソースコードや環境変数、シークレットをコンテナ内にマウント/注入してステップを実行する。 * **特筆すべき要素技術**: * **Docker API**: コンテナのライフサイクル管理に利用。 * **Go言語**: 軽量でクロスプラットフォームなCLIとして実装。 ```mermaid flowchart TD User([ユーザー]) -->|actコマンド実行| CLI[act CLI] CLI -->|解析| YAML[.github/workflows/*.yml] CLI -->|通信| DockerDaemon[Dockerデーモン] subgraph DockerDaemon [Docker環境] Container1[Job 1 コンテナ] Container2[Job 2 コンテナ] end DockerDaemon -->|作成・実行| Container1 DockerDaemon -->|作成・実行| Container2 Source[ソースコード] -.->|マウント| Container1 Source -.->|マウント| Container2 Secrets[.secrets] -.->|環境変数として注入| Container1 Secrets -.->|環境変数として注入| Container2 ``` ## **5. 開始手順・セットアップ** * **前提条件**: * Docker Engine (または Docker Desktop) がインストールされ、実行されていること。 * Git がインストールされていること。 * **インストール/導入**: ```bash # macOS (Homebrew) brew install act # Windows (Chocolatey) choco install act-cli # Linux (Curl) curl -s https://raw.githubusercontent.com/nektos/act/master/install.sh | sudo bash ``` * **初期設定**: * 初回実行時にデフォルトのDockerイメージサイズ(Large/Medium/Micro)を選択するプロンプトが表示される。 * `.actrc` ファイルにデフォルトの引数を設定可能。 * **クイックスタート**: ```bash # リポジトリのルートディレクトリで実行(デフォルトですべてのpushイベントを実行) act # 特定のイベント(例: pull_request)をトリガーとして実行 act pull_request ``` ## **6. 特徴・強み (Pros)** * **高速なフィードバックループ**: コード変更からテスト結果確認までの時間を数分〜数十分から数秒〜数分に短縮できる。コミット履歴を汚さずに試行錯誤が可能。 * **GitHub Actionsとの互換性**: 標準のYAML構文をそのまま解釈するため、特別な設定ファイルを追加で書く必要がない。 * **環境の一貫性**: Dockerコンテナ上で実行されるため、ローカル環境の汚れや依存関係の差異に影響されにくい。 * **クロスプラットフォーム**: Windows, Mac, Linuxのいずれでも動作(Dockerが必要)。 ## **7. 弱み・注意点 (Cons)** * **完全な互換性ではない**: GitHubホステッドランナーの環境を完全に再現できるわけではない。特にプリインストールされているソフトウェアの違いがある。 * **Docker依存**: 実行にはDocker Engineが必要であり、Docker Desktop等のライセンスやリソース消費(CPU/メモリ)の影響を受ける。 * **Docker in Dockerの複雑さ**: ワークフロー内でさらにDockerを使用する場合(Serviceコンテナなど)、設定が複雑になりトラブルが発生しやすい。 * **Apple Silicon (M1/M2/M3) の課題**: 一部のx86_64ベースのDockerイメージを使用する際、エミュレーションによりパフォーマンスが低下する場合がある。 ## **8. 料金プラン** | プラン名 | 料金 | 主な特徴 | |---------|------|---------| | **OSS (MIT License)** | 無料 | すべての機能を無制限に利用可能。 | * **課金体系**: 完全無料(オープンソース)。 * **無料トライアル**: なし(最初から全機能利用可能)。 ## **9. 導入実績・事例** * **導入企業**: 特定の企業導入リストは公開されていないが、GitHub Star数68,000超(2026年1月)という数字が広範な利用を示している。 * **導入事例**: * **OSSプロジェクト**: コントリビューションガイドラインに「PR作成前に `act` でテストを通すこと」を推奨するプロジェクトが多数存在。 * **個人開発者**: プライベートリポジトリの無料枠(Actions実行時間)を節約するためにローカルでテストを完結させる。 * **対象業界**: Web開発、クラウドネイティブ開発、DevOpsを採用している全業界。 ## **10. サポート体制** * **ドキュメント**: [User Guide](https://nektosact.com/) が整備されており、インストールから高度な設定まで網羅されている。 * **コミュニティ**: GitHub Discussions と Issues が非常に活発。ユーザー同士の助け合いや開発者からのレスポンスがある。 * **公式サポート**: 企業による有償サポートはない。コミュニティサポートのみ。 ## **11. エコシステムと連携** ### **11.1 API・外部サービス連携** * **API**: 外部から制御するための公式Web APIはないが、CLIツールとしてスクリプトから呼び出し可能。 * **外部サービス連携**: * **Docker**: 実行基盤として必須。 * **GitHub**: APIトークンを使用することで、GitHub上のリポジトリ情報やパッケージと連携可能。 * **VS Code**: 公式拡張機能ではないが、`act` を統合するサードパーティ製拡張機能が存在する。 ### **11.2 技術スタックとの相性** | 技術スタック | 相性 | メリット・推奨理由 | 懸念点・注意点 | |:---|:---:|:---|:---| | **Node.js / JS / TS** | ◎ | 軽量なコンテナで高速に動作。 | 特になし | | **Python** | ◎ | Python環境のセットアップが容易。 | 特になし | | **Go** | ◎ | コンパイル・テストが高速。 | 特になし | | **iOS / macOS** | × | DockerはLinuxコンテナがベースのため動作不可。 | macOS固有の機能(Xcode等)は利用できない。 | | **Windows** | △ | Docker上でWindowsコンテナを使う必要があり設定が複雑。 | 基本的にはLinuxベースのワークフロー向け。 | ## **12. セキュリティとコンプライアンス** * **認証**: GitHub Personal Access Token (PAT) を `-s GITHUB_TOKEN=...` で渡すことでプライベートリポジトリにアクセス可能。 * **データ管理**: すべてのデータはローカルマシン内で完結し、外部サーバーへの送信は行われない(GitHub APIを叩く場合を除く)。 * **準拠規格**: OSSのため特定の認証は取得していないが、コードは公開されており透明性が高い。 ## **13. 操作性 (UI/UX) と学習コスト** * **UI/UX**: シンプルなCLI。実行結果はGitHub ActionsのウェブUIのログに似た形式でカラー出力され、視認性が高い。 * **学習コスト**: DockerとGitHub Actionsの基本知識があれば、追加の学習コストは非常に低い。数個のコマンドオプションを覚えるだけで使える。 ## **14. ベストプラクティス** * **効果的な活用法 (Modern Practices)**: * **軽量イメージの利用**: `-P ubuntu-latest=node:16-buster-slim` のように、必要なツールだけが入った軽量Dockerイメージを指定することで実行速度を上げる。 * **Makeでのラップ**: `Makefile` に `test: act` のように記述し、開発者がコマンド一発で実行できるようにする。 * **陥りやすい罠 (Antipatterns)**: * **シークレットのコミット**: `.secrets` ファイルを誤ってGitにコミットしてしまう。必ず `.gitignore` に追加すること。 * **過度な信頼**: 「`act` で動いたから本番でも動く」と思い込み、GitHub上での最終確認を怠る。環境差異による失敗はあり得る。 ## **15. ユーザーの声(レビュー分析)** * **調査対象**: GitHub Issues, Twitter (X), Tech Blogs (Qiita, Zenn, Dev.to) * **総合評価**: 非常に好評。特に「待ち時間」に不満を持つ開発者から熱烈に支持されている。 * **ポジティブな評価**: * 「もう "fix ci", "retry" といったゴミコミットを量産しなくて済むのが最高。」 * 「飛行機の中など、オフラインでもCIの一部を動かせるのが便利。」 * 「デバッグサイクルが圧倒的に速くなった。」 * **ネガティブな評価 / 改善要望**: * 「GitHubホステッドランナーに入っているツールがなくてコケることがある(Imageの差異)。」 * 「M1 MacだとDockerの挙動が遅かったり、アーキテクチャ違いで動かないアクションがある。」 * 「`services` (DBなど) の立ち上げでトラブルが起きがち。」 * **特徴的なユースケース**: * CIの設定ファイルを「ローカル開発環境のセットアップスクリプト」として兼用し、新規参画者の環境構築を自動化する。 ## **16. 直近半年のアップデート情報** * **2026-06-01 (v0.2.89)**: 各種依存関係のアップデートによる安定性向上。 * **2026-05-01 (v0.2.88)**: go.opentelemetry.io などの依存関係アップデートによる安定性向上。 * **2026-04-01 (v0.2.87)**: アクションのピン留め修正などのバグフィックス。 * **2026-03-25 (v0.2.86)**: Node.js 20非推奨対応や各種依存関係のアップデート。 * **2026-03-23 (v0.2.85)**: go.opentelemetry.io、go-gitなどの依存関係アップデートによる安定性向上。 * **2026-01-01 (v0.2.84)**: メンテナンスリリース。依存パッケージのセキュリティアップデートとバグ修正。 * **2025-12-01 (v0.2.83)**: Mergify設定の更新など、開発フロー周辺の改善。 * **2025-10-01 (v0.2.82)**: 依存関係のアップデートによる安定性向上。 * **2025-09-01 (v0.2.81)**: Matrix展開ロジックの修正や、ステップコンテナのワークディレクトリ処理の修正。 (出典: [GitHub Releases](https://github.com/nektos/act/releases)) ## **17. 類似ツールとの比較** ### **17.1 機能比較表 (星取表)** | 機能カテゴリ | 機能項目 | act | GitHub Actions (Cloud) | GitLab CI/CD | Jenkins | |:---:|:---|:---:|:---:|:---:|:---:| | **実行環境** | ローカル実行 | ◎
Dockerで再現 | ×
不可 | ◯
gitlab-runner execによるローカル実行 | ×
基本的にサーバー必要 | | **互換性** | Actions構文 | ◎
ネイティブ対応 | ◎
本家 | ×
GitLab CI構文 | ×
Jenkinsfile等独自構文 | | **セットアップ** | 容易さ | ◯
Installのみ | ◎
不要 | ◯
Runner設定が必要 | △
サーバーとプラグイン設定が必要 | | **コスト** | 無料利用 | ◎
完全無料 | ◯
制限あり | ◯
SaaSは制限あり | ◎
完全無料 | | **運用機能** | Scheduled Workflows | △
cron手動対応 | ◎
タイムゾーン指定対応 | ◯
対応 | ◎
対応 | | **AI/高度機能** | Agentic SAST | ×
非対応 | ×
非対応 | ◎
脆弱性解決AI(GA) | ×
非対応 | ### **17.2 詳細比較** | ツール名 | 特徴 | 強み | 弱み | 選択肢となるケース | |---------|------|------|------|------------------| | **act** | GitHub Actionsローカルランナー | Actionsの資産をそのまま使える。無料。 | 完全な環境再現は困難。Docker必須。 | GitHub Actionsを利用しており、ローカルで高速にフィードバックを得たい場合。 | | **GitHub Actions (Cloud)** | 本家クラウド実行環境 | 完全な互換性。セットアップ不要。並列実行能力。 | フィードバックが遅い。デバッグがしにくい。 | 最終的な動作確認、本番デプロイ、重い処理。 | | **GitLab CI/CD** | GitLabの統合CI/CD | GitHubへの依存なく利用可能。要件を満たせばローカル実行も可能。 | GitHub Actions構文との互換性がない。 | メインのリポジトリがGitLabである場合。 | | **Jenkins** | 汎用CI/CDサーバー | 強力なプラグインエコシステム。複雑なパイプライン構築が可能。 | 運用コストが高い。セットアップが煩雑。 | 大規模なパイプラインや特殊な環境構築が必要な場合。 | ## **18. 総評** * **総合的な評価**: `act` は、GitHub Actionsを中心とした現代の開発ワークフローにおいて、**開発者体験(DX)を大きく向上させる重要なピース**である。クラウド上のCIの結果を待つという「無駄な時間」を排除できる点は、個人の生産性だけでなくチーム全体の速度向上に寄与する。 * **推奨されるチームやプロジェクト**: * GitHub ActionsをメインのCI/CDとして採用しているすべてのプロジェクト。 * CIパイプラインの修正や保守を行う頻度が高いDevOpsチーム。 * **選択時のポイント**: * 「ローカルでの事前検証用」と割り切り、最終的な品質保証はクラウド上のGitHub Actionsで行うという運用設計ができるかどうかが鍵となる。完全な互換性を求めすぎると、Docker環境の調整に時間を取られるため注意が必要。