部署Gitea Actions(二进制版)
Gitea Actions 类似 Github Actions ,能够帮助我们建立自动化工作流。例如,当我们提交代码到 Gitea 服务器时,自动触发构建和发布网站的脚本。
Gitea Actions 有时也称做 Runner 。
一、准备 Gitea Actions 服务器
建议将 Actions 运行在独立的服务器上。
二、安装 Docker
使用 Actions 需安装 Docker
# debian/ubuntu
sudo apt update
sudo apt install docker.io
# 当前用户加入 docker 组
sudo usermod -aG docker $USER
# 注销,重新登录,让 docker 组生效
三、下载 Runner
第一步,登录到 Actions 服务器,创建目录
mkdir ~/bin && cd ~/bin
第二步,下载 act_runner 二进制程序(下载地址)
wget https://dl.gitea.com/act_runner/0.2.11/act_runner-0.2.11-linux-amd64
第三步,重命名和赋权
mv act_runner-0.2.11-linux-amd64 act_runner
chmod +x act_runner
四、注册 Runner
进入 act_runner 目录,运行注册命令:
./act_runner register --no-interactive --instance <instance> --token <token>
#例如
# ./act_runner register --no-interactive --instance http://192.168.8.8:3000 --token YohvohSh6waena1xae9eujiephisie8eichei3Ung5uyei3w
instance
是 Gitea 服务器地址,token
从 Gitea 服务器的 Runner 复制。

执行成功后目录下会多出一个 .runner
文件。

四、启动 Runner
运行命令,启动 act_runner 守护进程:
./act_runner daemon
启动成功,有类似提示:
INFO[2025-04-23T23:19:03Z] Starting runner daemon
INFO[2025-04-23T23:19:03Z] runner: actions, with version: v0.2.11, with labels: [ubuntu-latest ubuntu-22.04 ubuntu-20.04], declare successfully
登录 Gitea 服务器,可以在 Acitions 中看到刚才启动的 Runner,它处于空闲状态。

五、测试 Runner
第一步,回到个人电脑,准备一个托管到 Gitea 服务器的仓库。
第二步,进入仓库根目录,创建 Actions 文件,创建测试脚本:
mkdir -p .gitea/workflow
touch .gitea/workflow/demo.yamal
第三步,编辑 actions 脚本,
vim .gitea/workflow/demo.yamal
贴入内容:
name: Gitea Actions 演示
run-name: ${{ gitea.actor }} 正在测试 Gitea Actions 🚀
on: [push]
jobs:
Explore-Gitea-Actions:
runs-on: ubuntu-latest
steps:
- run: echo "🎉 该任务是由 ${{ gitea.event_name }} 事件自动触发的。"
- run: echo "🐧 当前任务正在 Gitea 提供的 ${{ runner.os }} 服务器上运行!"
- run: echo "🔎 当前分支名为 ${{ gitea.ref }},仓库为 ${{ gitea.repository }}。"
- name: 检出仓库代码
uses: https://gitea.com/actions/checkout@v4
- run: echo "💡 仓库 ${{ gitea.repository }} 已被克隆到运行器中。"
- run: echo "🖥️ 工作流现在可以在运行器上测试你的代码了。"
- name: 列出仓库中的文件
run: |
ls ${{ gitea.workspace }}
- run: echo "🍏 当前任务的状态是 ${{ job.status }}。"
- run: echo "当前node和npm版本:" && npm -v && node -v
[!NOTE]
脚本中的 on:规定了每次 push 都会执行这个脚本。runs-on:规定了脚本运行在 docker 版的 ubuntu 系统。steps:打印一些环境变量。