利用 nektos/act debug github action locally
我们都知道利用 Github Action
可以用来进行构建CI
的流水线,通过构建对应的jobs
来实现我们的期望效果,对于目前来说很多时候构建之后的效果目前只能在远端repo
才能够看到最终的执行结果,那么我们是否有机会能够在本地构建,然后来类似DEBUG
看到最后期望呢?这里我将介绍如何利用nektos/act
这一利器来本地执行 Github Action
。
概览
根据官方仓库的概览描述告诉了我们对于本地构建的急切缘由!
- 及时的结果反馈。 通过本地构建我们无需通过
commit/push
的事件来触发远端repo
的action
。我们完全可以在本地进行模拟Github Actions
所达到的效果,从而得到一个及时的结果信息反馈。 - 我们完全可以通过流式线形式的构建来替换
Makefile
文件
实际操作
这里假设你已经具备基本的Github Action
配置能力,且具备初步的使用能力,此篇章主要是对 act
的配置及使用。
安装完可以通过 act -h
进行简单的查看验证。
安装
本人使用的是 macos
,可以通过 brew install act
进行安装,其他 os
发行版可以参考官方仓库中的安装说明进行安装。
配置
镜像配置
在远端Github Action
运行的时候实际上是提供了对应的 vm
资源进行构建,那么在本地的话,act
是提供一个虚机镜像在容器层面进行 os
的模拟,我这里使用的是默认的 platform/docker-image
,当然也可以自定定义。执行的命令如下:
1 | act -P <platform>=<docker-image> |
如下是我本地的镜像:
环境变量及密钥配置
很多时候在公司内部我们使用的更多的是私有仓库,那么我们在项目工程容器化的时候会拉依赖涉及到私有仓库,在 github
上我们会配置对应的 Action->secrets
,在远端运行github action
的时候是有机会获取到的,但是在本地的话我们如何传递呢?
act
支持 secrets
的配置,可以通过命令参数直接传递也可以通过在本地写入配置文件进行配置。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 kirago杂谈!