Act Runner
本页面将详细介绍Act Runner,这是Gitea Actions的Runner。
要求
建议在Docker容器中运行Job,因此您需要首先安装Docker。 并确保Docker守护进程正在运行。
其他与Docker API兼容的OCI容器引擎也应该可以正常工作,但尚未经过测试。
但是,如果您确定要直接在主机上运行Job,则不需要Docker。
安装
有多种安装Act Runner的方法。
下载二进制文件
您可以从发布页面下载二进制文件。 然而,如果您想使用最新的夜间构建版本,可以从下载页面下载。
下载二进制文件时,请确保您已经下载了适用于您的平台的正确版本。 您可以通过运行以下命令进行检查:
chmod +x act_runner
./act_runner --version
如果看到版本信息,则表示您已经下载了正确的二进制文件。
使用 Docker 镜像
您可以使用docker hub上的Docker镜像。
与二进制文件类似,您可以使用nightly
标签使用最新的夜间构建版本,而latest
标签是最新的稳定版本。
docker pull gitea/act_runner:latest # for the latest stable release
docker pull gitea/act_runner:nightly # for the latest nightly build
配置
配置通过配置文件进行。它是可选的,当没有指定配置文件时,将使用默认配置。
您可以通过运行以下命令生成配置文件:
./act_runner generate-config
默认配置是安全的,可以直接使用。
./act_runner generate-config > config.yaml
./act_runner --config config.yaml [command]
您亦可以如下使用 docker 创建配置文件:
docker run --entrypoint="" --rm -it gitea/act_runner:latest act_runner generate-config > config.yaml
当使用Docker镜像时,可以使用CONFIG_FILE
环境变量指定配置文件。确保将文件作为卷挂载到容器中:
docker run -v $(pwd)/config.yaml:/config.yaml -e CONFIG_FILE=/config.yaml ...
您可能注意到上面的命令都是不完整的,因为现在还不是运行Act Runner的时候。 在运行Act Runner之前,我们需要首先将其注册到您的Gitea实例中。
注册
在运行Act Runner之前,需要进行注册,因为Runner需要知道从哪里获取Job,并且对于Gitea实例来说,识别Runner也很重要。
Runner级别
您可以在不同级别上注册Runner,它可以是:
- 实例级别:Runner将为实例中的所有存储库运行Job。
- 组织级别:Runner将为组织中的所有存储库运行Job。
- 存储库级别:Runner将为其所属的存储库运行Job。
请注意,即使存储库具有自己的存储库级别Runner,它仍然可以使用实例级别或组织级别Runner。未来的版本可能提供更多对此进行更好控制的选项。
获取注册令牌
Runner级别决定了从哪里获取注册令牌。
- 实例级别:管理员设置页面,例如
<your_gitea.com>/admin/actions/runners
。 - 组织级别:组织设置页面,例如
<your_gitea.com>/<org>/settings/actions/runners
。 - 存储库级别:存储库设置页面,例如
<your_gitea.com>/<owner>/<repo>/settings/actions/runners
。
如果您无法看到设置页面,请确保您具有正确的权限并且已启用 Actions。
注册令牌的格式是一个随机字符串 D0gvfu2iHfUjNqCYVljVyRV14fISpJxxxxxxxxxx
。
注册令牌也可以通过 Gitea 的 命令行 获得:
注册Runner
可以通过运行以下命令来注册Act Runner:
./act_runner register
或者,您可以使用 --config
选项来指定前面部分提到的配置文件。
./act_runner --config config.yaml register
您将逐步输入注册信息,包括:
- Gitea 实例的 URL,例如
https://gitea.com/
或http://192.168.8.8:3000/
。 - 注册令牌。
- Runner名称(可选)。如果留空,将使用主机名。
- Runner标签(可选)。如果留空,将使用默认标签。
您可能对Runner标签感到困惑,稍后将对其进行解释。
如果您想以非交互方式注册Runner,可以使用参数执行以下操作。
./act_runner register --no-interactive --instance <instance_url> --token <registration_token> --name <runner_name> --labels <runner_labels>