act:在本機端執行 GitHub Actions#

act 是由 Nektos 提供的工具,它提供了一個方便的方式來使用 Docker 在本機端執行 GitHub Actions。act 提供了一個快速的方法來在本機端驗證您在 CI 上的變更,而無需提交/推送您的變更到工作流程以觸發和驗證。它帶來了快速的回饋,並且作為一個本機任務執行器,它與驗證我們所有 CI 工作的相容性使其成為一個方便的工具。

act 可以使用 Homebrew、Chocolatey 甚至是一個簡單的 BASH 腳本在本機端設定。要使用 BASH 腳本進行設定,只需在您的終端機上輸入以下命令

curl https://raw.githubusercontent.com/nektos/act/master/install.sh | sudo bash

使用 Homebrew,您可以透過以下方式設定:brew install act

下一步是定義我們可以用来在本機端執行 actions 的自訂映像檔。act 為 Ubuntu GitHub runner 提供了微型、中型和大型 Docker 映像檔。act 尚不支援 Windows 和 macOS 映像檔。

首次執行 act 時,我們可以定義我們想要用於本機 CI 執行的映像檔。組態會儲存在 ~/.actrc 檔案中。

在 GitHub 儲存庫中,首次執行 act 時,它會找到 ./.github/workflows 和所有存在的工作流程。要檢查作為 GitHub Actions CI 一部分列出的 jobs,請輸入以下命令

act -l

它將列出所有 jobs,您可以選擇您希望運行的特定 jobs。如果您希望運行特定的 job,請輸入以下命令

act -j <JOB_NAME>

要以 dry run 模式運行 job,請輸入以下命令

act -n

要以 verbose logging 模式運行 job,請輸入以下命令

act -v

要重複使用 act 中的容器以維護狀態,請輸入以下命令

act -j <JOB_NAME> --bind --reuse

建議註解掉 GitHub 特定的事件,例如 github.repositorygithub.event.head_commit.message。如果您正在使用環境變數,在您的 action 中,建議您建立一個 my.secrets 檔案,並透過輸入以下命令將這些環境變數提供給 act

act --secret-file my.secrets

如果環境變數是透過 .env 檔案提供的,請使用以下命令

act --env-file my.env