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.repository
或 github.event.head_commit.message
。如果您正在使用環境變數,在您的 action 中,建議您建立一個 my.secrets
檔案,並透過輸入以下命令將這些環境變數提供給 act
act --secret-file my.secrets
如果環境變數是透過 .env
檔案提供的,請使用以下命令
act --env-file my.env