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.repository
或 github.event.head_commit.message
。如果你在使用环境变量,在你的操作中,建议有一个 my.secrets
文件,并通过推送以下命令将这些环境变量提供给 act
:
act --secret-file my.secrets
如果环境变量是通过 .env
文件提供的,请使用以下命令:
act --env-file my.env