4.8 KiB
4.8 KiB
添加 Gitea Actions Runner 人工手顺
在 Windows 机器上手工部署一台宿主机模式(host)的 act_runner,注册到 https://gitea.docker.antior.cn/。全程约 10 分钟。
0. 前置条件
- Windows 10/11 x64
- 能访问
https://gitea.docker.antior.cn/(浏览器打开确认) - 一个 Gitea 账号:
- 注册实例级 runner 需要管理员权限
- 只给某个仓库/组织用,仓库 Owner 也可以(在仓库
设置 → Actions → Runners页面操作)
- 本手顺以安装目录
C:\Users\<用户名>\Gitea_worker为例,可按需替换
1. 获取注册令牌(二选一)
方式 A:Web 页面
- 实例级:右上角头像 → 站点管理 → Actions → Runners → 创建新 Runner,复制注册令牌
- 仓库级:仓库 → 设置 → Actions → Runners,同样位置复制
方式 B:管理员 API
curl -X POST -H "Authorization: token <你的PAT>" \
https://gitea.docker.antior.cn/api/v1/admin/actions/runners/registration-token
# 返回 {"token":"..."}
注册令牌一次性、有时效,注册时用掉即可,不需要保存。
2. 下载 act_runner
到 https://gitea.com/gitea/runner/releases 找最新版本,下载
gitea-runner-<版本>-windows-amd64.exe,放入安装目录并重命名为 act_runner.exe:
mkdir -p /c/Users/$USER/Gitea_worker && cd /c/Users/$USER/Gitea_worker
curl -sSL -o act_runner.exe \
https://gitea.com/gitea/runner/releases/download/v2.1.0/gitea-runner-2.1.0-windows-amd64.exe
./act_runner.exe --version
3. 注册 runner
./act_runner.exe register --no-interactive \
--instance https://gitea.docker.antior.cn/ \
--token <注册令牌> \
--name "$(hostname)-windows" \
--labels "windows-latest:host,windows:host,windows-amd64:host"
- 看到
Runner registered successfully.即成功,目录下会生成.runner凭证文件 - labels 说明:
xxx:host表示直接在 Windows 宿主机上执行,不经过 Docker- 本机没装 Docker,workflow 里
runs-on只能用这几个自定义标签 - 若之后装了 Docker Desktop,可追加
ubuntu-latest:docker://node:22之类的容器标签(需重新注册)
- 本机没装 Docker,workflow 里
4. 启动并验证
./act_runner.exe daemon
# 看到 "declare successfully" 说明已连上实例,Ctrl+C 先停掉
再到 Web 页面(站点管理 → Actions → Runners)确认状态为在线。
5. 配置开机自启(二选一)
方式 A:计划任务(首选)
schtasks /create /tn "GiteaActRunner" /sc onlogon /f `
/tr "wscript.exe \"C:\Users\<用户名>\Gitea_worker\run_hidden.vbs\""
方式 B:启动文件夹(方式 A 提示"拒绝访问"时用)
在安装目录新建 run_hidden.vbs(隐藏窗口后台运行,日志写入 runner.log):
Dim shell
Set shell = CreateObject("WScript.Shell")
shell.CurrentDirectory = "C:\Users\<用户名>\Gitea_worker"
shell.Run "cmd /c act_runner.exe daemon >> runner.log 2>&1", 0, False
然后把它复制到启动文件夹(Win+R 输入 shell:startup 打开):
%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\GiteaActRunner.vbs
立即启动一次(双击 vbs,或 wscript run_hidden.vbs),确认任务管理器里出现
act_runner.exe 进程、Web 页面上 runner 在线。
6. 日常使用
- 日志:
<安装目录>\runner.log - 任务工作目录:默认在安装目录下自动创建(
work/、.cache/),首个任务运行后出现 - workflow 写法:参考本仓库根目录 README 中的 prompt 模板和 .gitea/workflows/build.yaml
7. 卸载
- 结束
act_runner.exe进程 - 删除自启项:计划任务
GiteaActRunner或启动文件夹里的GiteaActRunner.vbs - 删除安装目录
- Web 页面(站点管理 → Actions → Runners)删除该 runner 记录
常见问题
| 现象 | 原因 / 处理 |
|---|---|
schtasks 提示"拒绝访问" |
组策略限制,改用方式 B(启动文件夹) |
| workflow 一直排队不执行 | runs-on 标签与 runner labels 不匹配,改成 windows-latest |
任务里 docker/gcc/make 找不到 |
host 模式没有这些工具,见 README 的工具链清单 |
| 注册时报令牌错误 | 注册令牌已过期或被用掉,重新生成一个 |
actions/checkout 步骤报 github.com ... wsarecv 连接失败 |
runner 到 github.com 的网络不稳定(偶发)。处理:① 在 Actions 页面重跑该任务,多数情况重跑即成功;② 管理员可在服务端 app.ini 设 [actions] DEFAULT_ACTIONS_URL 指向可达镜像;③ workflow 里改用 git clone https://x-access-token:${{ secrets.GITHUB_TOKEN }}@<实例域名>/${{ github.repository }}.git 从实例拉代码,完全不依赖 github.com |