使用 Act 本地运行 GitHub Actions

简介

GitHub Actions 为仓库开发者提供了执行定制化 Job 的能力,开发者可以使用各种 Job 基于代码仓库运行测试、构建、发布等操作,实现 CI/CD 等工作流。

outside_default.png

这些 Job 默认运行在 GitHub 提供的 runner 中,但是由于仓库众多,配置了 actions 的代码仓库未必能得到足够的资源 (runner) 来快速、高效的运行代码仓库的 Actions。

一个可行的方式是绑定自己的私有 runner 到代码仓库,这样每次执行 Job 时都会在自己的 runner 上,详情见 self-hosted runners[1]

另一个方案就是 act[2], 可以在电脑上,在代码仓库目录下,直接本地运行 Actions 中的 Job。方便开发者快递本地迭代和测试,确认没问题了再更新到主仓库,减少主仓库执行 Actions 的次数。

act 安装

act 使用 go 语言开发,可以直接下载编译好的二进制文件,或者使用 go install 安装。

  1. 下载二进制文件

进入 act 的 releases[3] 页面找到最新版,笔者这里是 v0.2.63

使用 Act 本地运行 GitHub Actions_第1张图片

选择对应平台的文件,笔者这里是 Mac M 芯片,选择act_Darwin_arm64.tar.gz, 下载解压后,移动到 PATH 目录即可。

  1. go install 安装

首先下载代码仓库

git clone https://github.com/nektos/act.git

进入到 act 目录,运行 go install

$ go install
go: downloading github.com/spf13/cobra v1.8.1
go: downloading golang.org/x/term v0.21.0
go: downloading google.golang.org/protobuf v1.34.2
go: downloading github.com/docker/cli v26.1.4+incompatible
go: downloading golang.org/x/sys v0.21.0

go 会自动构建二进制文件,并把构建好的二进制文件放到 gopath 中,这时查看 act 版本:

$ act --version
act version 0.2.63

act 使用

  1. 触发条件

# 运行 push 触发的 action
act push

# 运行 pull_request 触发的 action
act pull_request

你可能感兴趣的:(github)