act 用于在本地运行 GitHub Actions#
act
是 Nektos 提供的一个工具,它提供了一种便捷的方式,可以使用 Docker 在本地运行 GitHub Actions。 act
提供了一种快速的方式来验证您对 CI 的更改,而无需将更改提交/推送至工作流程以触发和验证更改。 它可以快速反馈,并且作为本地任务运行器,可以验证我们所有 CI 任务的兼容性,这使其成为一个便捷的工具。
您可以使用 Homebrew、Chocolatey 甚至简单的 BASH 脚本在本地设置 act
。 要使用 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.repository
或 github.event.head_commit.message
。 如果你在操作中使用环境变量,建议你创建一个 my.secrets
文件,并将这些环境变量提供给 act
,方法是执行以下命令
act --secret-file my.secrets
如果环境变量通过 .env
文件提供,请使用以下命令
act --env-file my.env