{% link ‘Gitea Actions 初体验’ ‘Gitea Actions’ ‘/posts/75.html’ %}
最近把Git的托管放回到本地的服务器上,博客也从Github搬迁回家里的服务器上,Github Actions也换成Gitea Actions托管模式。
{% link ‘Act Runner’ ‘这是Gitea Actions的Runner’ ‘https://docs.gitea.com/zh-cn/1.20/usage/actions/act-runner' %}
先创建一个存放docker compose文件的目录。
新建文件 .nev 和 docker-compose.yml
1# .nev
2
3# 容器名称
4CONTAINER_NAME="act_runner"
5# 限制cpu核,填写0为不限制
6CPUS=0
7# 限制运行内存,填写0为不限制
8MEMORY_LIMIT="1024M"
9# 你的gite的URL
10GITEA_INSTANCE_URL="gitea域名"
11# docker运行镜像
12RUNNER_LABELS="ubuntu-latest:docker://gitea/runner-images:ubuntu-latest"
13# Runner名称,显示在Actions
14RUNNER_NAME="2H2G-阿里云"
15# Runner的令牌,在管理后台获取
16RUNNER_REGISTRATION_TOKEN="u2LP4dxxSdNXTsL"

{% link ‘Node’ ‘Node’ ‘https://hub.docker.com/_/node' %}
{% link ‘gitea/runner-images’ ‘gitea/runner-images’ ‘https://hub.docker.com/r/gitea/runner-images/tags' %}
如果你想自定义镜像可以在Docker Hub 上面查找,node,debian 这些的都可以用。
查看官方文档,找到自定义的镜像方法,以 ubuntu-latest:docker://node:16-bullseye 它意味着Runner可以运行带有 runs-on: ubuntu-22.04 的Job,并且该Job将在使用node:16-bullseye 镜像的Docker容器中运行。
假设你想自定义镜像名称为 node20 docker镜像为 node:20.18.1-bullseye 可以拼接成node20:docker://node:20.18.1-bullseye 然后修改.env文件相应的字段。
1# docker-compose.yml
2version: "3.8"
3services:
4 runner:
5 image: gitea/act_runner:nightly
6 container_name: ${CONTAINER_NAME}
7 deploy:
8 resources:
9 limits:
10 cpus: ${CPUS}
11 memory: ${MEMORY_LIMIT}
12 environment:
13 CONFIG_FILE: /config.yaml
14 - GITEA_INSTANCE_URL=${GITEA_INSTANCE_URL}
15 - GITEA_RUNNER_REGISTRATION_TOKEN=${RUNNER_REGISTRATION_TOKEN}
16 - GITEA_RUNNER_NAME=${RUNNER_NAME}
17 - GITEA_RUNNER_LABELS=${RUNNER_LABELS}
18 volumes:
19 - ./config.yaml:/config.yaml
20 - ./data/data:/data
21 - /var/run/docker.sock:/var/run/docker.sock
22 - /etc/localtime:/etc/localtime:ro
23 - /etc/timezone:/etc/timezone:ro
最后执行 docker-compose up 命令来启动该容器。

在管理后台就可以看见刚刚创建的Runner容器。
开启Actions Runner
在你想开启的仓库点设置,找到仓库设置 往下找到 启用Actins 勾选上

在仓库新建 .gitea/workflows/build.yaml 进行测试。
1name: Gitea Actions Demo
2on: [push]
3jobs:
4 Explore-Gitea-Actions:
5 runs-on: node20
6 steps:
7 - run: node -v

runs-on: node20 这里是填刚刚自定义镜像的名称。首次运行会进行拉取镜像,会执行比较长时间,等镜像缓存好就快了。
- run: node -v 是查询node的版本命令。版本显示 20.18 完全安装正确。
其他语法命令和Github Actions的语法命令和软件包都高度兼容。