Forgejo Runner是为Forgejo平台提供持续集成/持续部署(CI/CD)能力的自动化组件,接下来介绍如何使用二进制文件部署。
前提
服务器需要提前安装Docker。
有问题可以前往Forgejo官方文档查询。
下载并安装二进制文件
网络状况不好可以设置代理加速下载。
bash
12345678
export ARCH=$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/')
export RUNNER_VERSION=$(curl -X 'GET' https://data.forgejo.org/api/v1/repos/forgejo/runner/releases/latest | jq .name -r | cut -c 2-)
export FORGEJO_URL="https://code.forgejo.org/forgejo/runner/releases/download/v${RUNNER_VERSION}/forgejo-runner-${RUNNER_VERSION}-linux-${ARCH}"
wget -O forgejo-runner ${FORGEJO_URL}
chmod +x forgejo-runner
wget -O forgejo-runner.asc ${FORGEJO_URL}.asc
gpg --keyserver hkps://keys.openpgp.org --recv EB114F5E6C0DC2BCDD183550A4B61A2DC5923710
gpg --verify forgejo-runner.asc forgejo-runner && echo "✓ Verified" || echo "✗ Failed"
移动到/usr/local/bin后可以执行forgejo-runner命令:
bash
123
cp forgejo-runner /usr/local/bin/forgejo-runner
# 可查看版本
forgejo-runner -v
创建用户
创建runner用户并设置为docker用户组,可以执行docker命令。
bash
12
useradd --create-home runner
usermod -aG docker runner
基础配置
使用runner用户进行基础配置:
bash
123
su runner
cd ~
# 此时应该在/home/runner文件夹里
bash
123456789101112131415161718
$ forgejo-runner register
# 以下是根据提示操作
INFO Registering runner, arch=arm64, os=linux, version=v9.0.3.
WARN Runner in user-mode.
INFO Enter the Forgejo instance URL (for example, https://next.forgejo.org/):
# 输入forgejo的地址,内网就写内网地址,例如:http://192.168.1.100:3000/
https://code.forgejo.org/
INFO Enter the runner token:
# forgejo获取的action token
6om01axzegBu98YCpsFtda4Go2DuJe7BEepzz2F3HY
INFO Enter the runner name (if set empty, use hostname: runner-host):
# 自定义名字
my-forgejo-runner
INFO Enter the runner labels, leave blank to use the default labels (comma-separated, for example, ubuntu-20.04:docker://node:20-bookworm,ubuntu-18.04:docker://node:20-bookworm):
# 运行容器,后续可改写
INFO Registering runner, name=my-forgejo-runner, instance=https://code.forgejo.org/, labels=[docker:docker://node:20-bookworm].
DEBU Successfully pinged the Forgejo instance server
INFO Runner registered successfully.
获取默认配置,可以进行修改:
bash
1
forgejo-runner generate-config > config.yml
设置进程
bash
1
nano /etc/systemd/system/forgejo-runner.service
使用自定义配置:
ini
1234567891011121314151617
[Unit]
Description=Forgejo Runner
Documentation=<https://forgejo.org/docs/latest/admin/actions/>
After=docker.service
[Service]
ExecStart=/usr/local/bin/forgejo-runner daemon --config /home/runner/config.yml
ExecReload=/bin/kill -s HUP $MAINPID
User=runner
WorkingDirectory=/home/runner
Restart=on-failure
TimeoutSec=0
RestartSec=10
[Install]
WantedBy=multi-user.target
启动和设置开机自启
bash
123
systemctl daemon-reload
systemctl start forgejo-runner.service
systemctl enable forgejo-runner.service
在Action中使用Docker
参考:https://forgejo.org/docs/latest/admin/actions/docker-access/
可以使用Docker-in-Docker的方式,还可以使用本机Docker的方式,具体查看文档,然后修改/home/runner/config.yml,应用配置即可。
总结
Forgejo Runner和Gitea Runner的部署方式类似,Docker部署可以参考Gitea Runner的部署。