如何给 GitHub Actions 添加自己的 Runner 主机 - 云 + 社区 - 腾讯云
本文由 简悦 SimpRead 转码, 原文地址 cloud.tencent.com
在前面的文档中,我对 GitLab 提供的 CI 功能进行了实践,点击查看 。使用 GitLab 的好处是可以私有化部署、无限的私有仓库数量、CI 配置简单、能…
- 什么是 GitHub Actions
在前面的文档中,我对 GitLab 提供的 CI 功能进行了实践,点击查看 。使用 GitLab 的好处是可以私有化部署、无限的私有仓库数量、CI 配置简单、能接入自建的 Runner 。但随着 GitHub 越来越开放,GitLab 的这些优势在逐步丧失。
从 CICD 的角度看,越接近 Git 仓库的功能,越贴近开发者。未来的开发者市场上,GitHub、GitLab、Coding、Gitee 这样的 SaaS 平台将具有很顽强的生命力。
GitHub Actions 是一个类似 GitLab CI 的服务。GitLab 默认使用的是 .gitlab-ci.yml
文件,描述 CICD 流程。而 GitHub 使用的是 .github/workflows
目录下的 yaml 文件。最大的不同在于,GitHub 提供了一个 Actions 市场,开发者可以基于这些原子快速编排流程。
我在文档 使用镜像部署 Hexo 静态页面 中,使用下面的 yaml 配置进行编译和推送镜像:
1 | name: build |
每次 push 代码之后,Actions 就会自动运行,如下图:
这种方式对开发者十分友好,如果网络通畅,GitHub Actions 能够满足很多团队的 CICD 需求。
- 什么时候需要接入自己 Runner
2.1 对构建机器有要求
目前,GitLab 只提供了下面几类运行环境:
- windows
- ubuntu
- macos
但并不是每个版本的系统都支持,目前只能使用指定的版本,也无法指定 CPU 架构。
另一方面,在构建过程当中,GitHub 提供的构建机,对物理资源也有所限制。构建虚拟机的配置如下:
- 2 core CPUs
- 7 GB of RAM memory
- 14 GB of SSD disk space
可能在未来,相关的物理资源配置会有所提升,但始终会有限制。当需要构建某些大型项目,特别是 C++ 项目时,这样的物理资源配置是不能够满足要求的。
2.2 私有仓库需要大量构建
下图是目前 GitHub 官方给出的构建报价:
非常幸运的是公开仓库免费使用,只有私有仓库的额度有限制。不同付费级别的用户,具有不同的构建时长。需要注意的是,这里的时长指的是 Linux 的构建时长。Windows 使用一分钟,折算为 Linux 的两分钟。MacOS 使用一分钟,折算为 Linux 的十分钟。
对私有仓库有大量构建需求的项目,使用 GitHub Actions 提供的构建机性价比不高。
- 添加主机 Runner
这里的 Runner 指的是 GitHub Actions 的运行环境,也就是 .github/workflows
文件夹下 yaml 中指令的运行环境。这里主要添加主机 Runner,如果是添加容器或者 Kubernetes Runner ,需要将 actions-runner 打包到镜像中,然后运行接入 GitHub Actions,在其他方面没有差别。
首先进入项目,在 Settings 页面中,找到 Actions 。
点击上图的 Add runner 进入下图的添加主机页面,同样支持三种操作系统,macOS、Linux、Windows。
在页面选择操作系统和架构之后,按照安装提示操作即可。
- 新建用户 runner:runner
1 | groupadd -g 1234 runner |
- 下载 Runner
1 | mkdir actions-runner && cd actions-runner |
- 配置 Runner
在这一步中,可能需要根据提示。执行命令
su root
,切换到 root 用户,执行./bin/installdependencies.sh
安装依赖。
执行 config.sh
开始配置:
1 | ./config.sh --url https://github.com/shaowenchen/pipeline-test --token AKNLJON6JWRTO35GV3PXGVS7ZHPZO |
根据命令的提示,进行如下交互:
1 | Enter the name of runner: [press Enter for node1] mycentos |
运行 Runner
页面查看 Runner
在 GitHub 的 Actions 页面可以看到新增加的 Runner。
- 使用测试
- 添加 workflows 文件
在项目 master 分支,增加文件 .github/workflows/blank.yml
,内容如下:
1 | ./run.sh |
- 查看运行结果
提交文件之后,Actions 马上就会开始运行,执行结果如下图:
- 查看节点上的 workspaces
1 | name: CI |
从 workspaces 中的文件可以看到,Actions 将代码 checkout 到主机上,然后在主机上执行了编排命令。
- 参考
- https://github.com/features/actions
- https://docs.github.com/en/free-pro-team@latest/actions/hosting-your-own-runners/about-self-hosted-runners
作者: Shaowen Chen
原文链接:https://www.chenshaowen.com/blog/how-to-add-self-hosted-runners-to-github-action.html
更多精彩内容,请关注公众号:问其
原创声明,本文系作者授权云 + 社区发表,未经许可,不得转载。
如有侵权,请联系 yunjia_community@tencent.com 删除。