zhaxnb
Published on 2025-03-07 / 4 Visits
0
0

Gitea Act Runner

1. 预备工作

  • 确保 Gitea 已经安装且启用 Actions
    如果 Gitea 版本在 1.21.0 及以上,Actions 默认是启用的;否则需要在 Gitea 配置文件 app.ini 中添加:

    [actions]
    ENABLED = true
    

2. 安装 Runner

2.1 Docker 镜像安装

直接拉取官方 Docker 镜像(稳定版或 nightly 版均可):

docker pull docker.io/gitea/act_runner:latest
# 或者
docker pull docker.io/gitea/act_runner:nightly

3. 生成配置文件

如果使用 Docker,也可运行:

docker run --entrypoint="" --rm -it docker.io/gitea/act_runner:latest act_runner generate-config > config.yaml

可以根据需要修改配置文件,比如设置日志级别、并发容量(capacity)、缓存配置等。


4. 启动 Runner

4.1 Docker 方式启动

可以使用如下命令启动 Runner(请根据实际情况修改环境变量中的 Gitea URL、注册令牌、Runner 名称和标签):

docker run -v $(pwd)/config.yaml:/config.yaml \
  -v $(pwd)/data:/data \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -e CONFIG_FILE=/config.yaml \
  -e GITEA_INSTANCE_URL=http://your-gitea-domain:3000/ \
  -e GITEA_RUNNER_REGISTRATION_TOKEN=your_registration_token \
  -e GITEA_RUNNER_NAME=runner_name \
  -e GITEA_RUNNER_LABELS="ubuntu-latest:docker://node:16-bullseye" \
  --name act_runner -d gitea/act_runner:latest

如果需要用 Docker Compose 部署,可参考下面的示例 docker-compose.yml

version: "3.8"
services:
  act_runner:
    image: gitea/act_runner:latest
    container_name: act_runner
    restart: always
    environment:
      - CONFIG_FILE=/config.yaml
      - GITEA_INSTANCE_URL=http://your-gitea-domain:3000/
      - GITEA_RUNNER_REGISTRATION_TOKEN=your_registration_token
      - GITEA_RUNNER_NAME=runner_name
      - GITEA_RUNNER_LABELS=ubuntu-latest:docker://node:16-bullseye
    volumes:
      - ./config.yaml:/config.yaml
      - ./data:/data
      - /var/run/docker.sock:/var/run/docker.sock

启动命令:

docker-compose up -d

6. 配置说明

  • Labels
    标签用于匹配工作流中 runs-on 指定的环境。例如,当在工作流中设置 runs-on: ubuntu-latest 时,Runner 会检查其标签是否匹配,并选择合适的 Runner 运行作业。

  • 缓存配置
    如果打算使用 actions/cache,需要在 config.yaml 中正确配置 cache 节点,并在 Docker 运行时映射相应端口。

  • 环境变量与超时
    可在配置文件中设置作业超时、额外的环境变量等,根据实际需要进行调整。


参考资料


以上就是 Gitea Act Runner 的基本安装与配置步骤。配置完成后,可以直接在 Gitea 的 Runner 管理面板中看到新注册的 Runner,并在仓库中编写 .gitea/workflows/ 下的工作流文件来触发 CI/CD 作业。


Comment