Act Runner 是一个 Gitea 运行器,通过自行部署,可以实现类似于 GitHub Actions 的运行器,且可以兼容 GitHub Actions 配置文件,目前杜老师说站点就是基于 Gitea 托管与自动部署。
工具简介 {#工具简介}
Gitea Actions 是一个类似 GitHub Actions 的自动化工作流工具,可以帮助开发者在代码仓库中实现各种自动化任务。Runner 则是负责执行这些工作流任务的代理端。
在实际应用中,使用 Docker 部署 Gitea Actions 的 Runner 具有诸多优势。
首先,Docker 提供一致的运行环境,消除了因系统配置差异而导致的潜在问题。
其次,它简化了部署过程,使得安装、配置更加便捷高效。
获取密钥 {#获取密钥}
登录到 Gitea 实例,转到存储仓库页面,点击页面上方设置,在左侧菜单选择 Actions,将在页面上看到 Runners 部分,后点击创建 Runner 按钮,将获得一个 REGISTRATION TOKEN,复制它并妥善保存:
准备工作 {#准备工作}
在完成准备工作后,可通过以下步骤创建 Docker 容器并配置 Runner。使用下面命令拉取所需的 Gitea Actions Runner 镜像:
|-----------|----------------------------------------------|
| 1
| docker pull gitea/act_runner:nightly
|
使用下面命令生成默认配置文件:
|-----------|--------------------------------------------------------------------------------------------------------------|
| 1
| docker run --entrypoint="" --rm -it gitea/act_runner:latest act_runner generate-config > config.yaml
|
将下面内容保存到 docker-compose.yml
文件中:
|------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14
| version: "3.8" services: runner: image: gitea/act_runner:nightly environment: CONFIG_FILE: /config.yaml GITEA_INSTANCE_URL: "${INSTANCE_URL}" GITEA_RUNNER_REGISTRATION_TOKEN: "${REGISTRATION_TOKEN}" GITEA_RUNNER_NAME: "${RUNNER_NAME}" GITEA_RUNNER_LABELS: "${RUNNER_LABELS}" volumes: - ./config.yaml:/config.yaml - ./data:/data - /var/run/docker.sock:/var/run/docker.sock
|
根据需求,修改 docker-compose.yml
文件中参数。${INSTANCE_URL}
替换为实例的 URL,${REGISTRATION_TOKEN}
替换为前面获得的 REGISTRATION TOKEN,${RUNNER_NAME}
替换为 Runner 的名称,${RUNNER_LABELS}
替换为 Runner 的标签「本机部署建议设置为 self-hosted
」然后使用下面命令启动工具:
|-----------|------------------------------|
| 1
| docker-compose up -d
|
配置文件 {#配置文件}
下面是个简单实例,可将内容保存为 .gitea/workflows/demo.yaml
,生效后即可在 Actions 页面中看到运行结果:
|-----------------------|-----------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7
| name: Gitea Actions Demo on: [push] jobs: Explore-Gitea-Actions: runs-on: self-hosted steps: - run: echo dusays.com
|
杜老师首次运行时,提示缓存配置错误,将下面内容保存到 config.yaml
文件中即可:
|-----------------|-------------------------------------------------------|
| 1 2 3 4
| cache: enabled: false host: workdir_parent: /
|