產品說明
Act (全名 nektos/act) 是一款強大的命令列工具,它的核心理念是「Think globally, act locally」。這款工具允許開發者在本地端電腦直接運行 GitHub Actions 的 Workflow,而無需反覆將程式碼推送到 GitHub 遠端儲存庫來觸發 CI/CD 流程。
它透過 Docker API 啟動與 GitHub Runner 環境高度相似的容器,並依序執行 .github/workflows/ 定義的步驟。這對於開發者來說意味著極致的效率提升——你不再需要為了修正一個小小的 YAML 語法錯誤而產生十幾個 "Fix CI" 的 Commit,所有的測試與除錯都可以在本地瞬間完成。
核心特色:
- 快速反饋循環:省去「Commit -> Push -> 等待雲端排程 -> 查看失敗 Log」的冗長過程,直接在本地得到執行結果。
- 環境一致性:預設使用與 GitHub Actions 相容的 Docker 映像檔,確保本地測試結果與雲端執行環境高度一致。
- 本地任務管理:除了 CI 測試,你甚至可以用它來取代
Makefile,將專案的建置、測試、部署流程統一用 GitHub Actions 語法管理。 - 模擬複雜場景:支援模擬各種 GitHub 事件(如
push,pull_request),並可掛載.secrets檔案來安全地測試需要 API Key 的流程。
常用指令
Act 是純命令列工具,熟悉其參數能大幅提升開發效率。以下是日常開發最常用的指令範例與參數說明:
基礎操作與範例
# 範例 1:執行預設事件 (通常是 push)
# 這會執行所有設定為 on: push 的 workflow
act
# 範例 2:列出專案中所有可執行的 Actions
# 用來確認 Act 是否正確讀取到你的 .github/workflows 設定
act -l
# 範例 3:模擬特定事件 (如 Pull Request)
act pull_request
# 範例 4:傳入機敏資料 (Secrets)
# 若 workflow 中使用了 ${{ secrets.API_KEY }},可透過此方式傳入
act -s API_KEY=foobar
# 範例 5:執行特定的 Job (除錯時最常用)
# 只執行名稱為 "test" 的 Job,節省等待其他 Job 的時間
act -j test
| 參數/指令 | 功能說明 | 對應操作 |
|---|---|---|
| -l / –list | 列出列表 | 顯示所有可用的 Workflows 與 Jobs |
| -j / –job | 指定任務 | 只執行指定的 Job ID |
| -P / –platform | 指定平台 | 指定特定 OS 對應的 Docker Image (如 ubuntu-latest) |
| -s / –secret | 傳入密鑰 | 設定環境變數中的 Secrets |
| -n / –dryrun | 試運行 | 僅顯示執行計畫,不實際跑容器 |
| -v / –verbose | 詳細模式 | 顯示更多除錯訊息 |
操作介面




![]()
