Skip to content

Act

本地端 GitHub Actions 執行器

軟體分類 程式開發 / 系統工具
開發廠商 nektos
Stars
0
Forks
0
License
MIT LICENSE
Version
v0.2.85
Update
OS

產品說明

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詳細模式顯示更多除錯訊息

操作介面