乐于分享
好东西不私藏

从此告别 github actions 调试难题

本文最后更新于2025-08-07,某些文章具有时效性,若有错误或已失效,请在下方留言或联系老夜

从此告别 github actions 调试难题

从此告别 github actions 调试难题

假如你正在使用 github actions 作为项目的持续集成和部署工具,但是又觉得每次改完 yml 脚本以后去云端看执行效果非常低效。那么 act 这款工具将会解决你的这项困扰。

act 可以本地运行你的 github actions 脚本,让你快速得到更改后的执行结果反馈。其原理和执行步骤是:

1. 读取工作流文件
首先它会扫描你项目中的 .github/workflows/ 目录并读取这个目录下的所有 YAML 配置文件。

2. 解析依赖并确定执行路径
act 会分析这些工作流文件,理解各个任务之间的依赖关系。例如,如果一个任务依赖于另一个任务的成功完成,act 会确保它们按照正确的顺序执行。

3. 利用 Docker 创建模拟环境
拉取或构建镜像: 你的工作流文件中通常会指定运行环境,比如 runs-on: ubuntu-latest。act 会根据这些定义,使用 Docker API 来拉取或构建一个与 GitHub Actions 官方运行器环境非常相似的 Docker 镜像。

创建容器: 对于工作流中的每一个步骤,act 都会使用之前准备好的 Docker 镜像来启动一个独立的 Docker 容器。

4. 在容器中执行操作
act 会在这些启动的容器中执行你在工作流文件中定义的命令和脚本。

5. 配置环境变量和文件系统,为了让本地环境尽可能地接近真实的 GitHub Actions 环境,act 会在容器内进行精细的配置:
环境变量: 它会设置与 GitHub Actions 相同的默认环境变量(例如 GITHUB_TOKEN, GITHUB_SHA 等)。如果你的工作流需要使用密钥(Secrets),你也可以通过 act 的命令参数将它们安全地提供给本地的运行环境。
文件系统: act 会模拟 GitHub Actions 的文件系统结构,确保你的代码和相关文件在容器中的路径是正确的。

简而言之,act 让你可以在本地修改工作流文件后立即运行测试看到结果,而不用经历 “提交代码 -> 推送到 GitHub -> 等待云端运行 -> 查看日志” 这样一个漫长的循环,这极大地提高了开发和调试 CI/CD 流程的效率。

传送门:github.com/nektos/act

#运维  #开源  #开源神器  #学习日常  #github  #效率  #软件

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » 从此告别 github actions 调试难题
×
订阅图标按钮