建立 GitHub Action Self Host Runner
将 Runner 注册到 GitHub
要拥有 Github repo / 组织 权限的人去加入,然后依照 Adding self-hosted runners 教学去注册 runner,基本上有 2 种方式
- Adding a self-hosted runner to a repository
- Adding a self-hosted runner to an organization
注意:如果要一台 runner 提供给多个 repo 使用的话,只能使用注册到 组织 的方式
建立的流程大致上是
- 在
~
建立一个action-runner
的目录 - 使用指令下载一包压缩档到该目录
- 解压缩该档案(里面就是包含 Runner 所需要的 shell script 档案)
- 执行注册到 GitHub 的 script ( 使用
config.sh
,指令请依照 GitHub 页面指示,GitHub 页面会戴上注册用的 token ) - 执行启动 GitHub Runner 指令的 script ( 使用
run.sh
)
注册 Self Host Runner 过程中注意事项
加入的过程中会问你是否要加入 Group
及 Label
Group
主要是要能够使用 Runner Group 时候使用,可以参考 Managing access to self-hosted runners using groups 来建立,所以如果没有设定的话就留空即可
预设值是 Default
Label
执行建立 Runner 的指令过程中,除了一些会预设给的 label 外,也会问你要不要制订 custom lable,这个 label 就可以用于在 GitHub Action Flow YAML 里面的
runs-on
来指定要跑得 runner
以 M1 Mac Book Air 来说会有下列预设 label
self-hosted
macOS
ARM64
如果执行指令的时候没有新增,后面也可以去 GitHub 网站的设定里面再新增,可以参考 Using
labels with self-hosted runners,所以如果仅有一台 runner 的话可以在 GitHub Action Workflow 的 YAML 档案中写
runs-on: self-hosted
即可
执行 Runner 后检查
Runner 注册好后,要去 GitHub 的 Runners 里面看看 Status
是不是有连上,若为 Offline
则是尚未连上,可以用 CLI 去 runner 的
actions-runner
资料夹里面执行 run-helper.sh
试看看
把 GitHub self host runner application 变成 service
注册的最后一步执行 ./run.sh
意思就是相依于一个 terminal instance,所以一旦把 terminal 关闭的话 runner 和 GitHub
的连线就会断掉无法使用,也就是说一旦重新开机的时候就不会自动连上
可以参考 Configuring the self-hosted runner application as a service 这篇改注册成 service
移除 Self host runner
可以参考 Removing self-hosted runners
基本上就是从 GitHub 页面上面可以在 Runner 的页面点了 Remove ,如果还可以控制到那台 runner 机器的话,可以依照提供的指令去解除跟 repo / 组织 的绑定,不然也可以强制解除绑定
如果有使用指令解除绑定的话,就可以再次使用指令重新绑定,否则如果要重新绑定的话,可以使用下列的方式暴力但简单的清除
- 叫出 工作管理员 (Windows) / 活动监视器 (Macos)
- 结束 Gibhub runner 的 task
- 删除
actions-runner
的目录- MacOS 目录通常位于
~
下,Windows 的话通常位于C:\
下
- MacOS 目录通常位于