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

下一步是定义我们可以用于在本地运行操作的自定义镜像。act 为 Ubuntu GitHub 运行器提供了微型、中型和大型 Docker 镜像。act 尚不支持 Windows 和 macOS 镜像。

首次运行 act 时,我们可以定义我们希望用于本地 CI 运行的镜像。配置保存在 ~/.actrc 文件中。

在 GitHub 仓库中,首次运行 act 时,它将查找 ./.github/workflows 和所有存在的工作流。要查看 GitHub Actions CI 中列出的作业,请执行以下命令

act -l

它将列出所有作业,您可以选择希望运行的特定作业。如果您想运行特定的作业,请执行以下命令

act -j <JOB_NAME>

要以空运行模式运行作业,请执行以下命令

act -n

要以详细日志模式运行作业,请执行以下命令

act -v

要重用 act 中的容器以保持状态,请执行以下命令

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

建议注释掉 GitHub 特定的事件,如 github.repositorygithub.event.head_commit.message。如果您在操作中使用环境变量,建议创建一个 my.secrets 文件,并通过执行以下命令将这些环境变量提供给 act

act --secret-file my.secrets

如果环境变量通过 .env 文件提供,请使用以下命令

act --env-file my.env