gitea runner 从 1.0.0 版本开始修改仓库名称和软件名称,现脚本同步全部修改
创建配置目录
mkdir -p /etc/gitea-runner
pushd /etc/gitea-runner > /dev/null
下载
#!/usr/bin/env bash
set -euo pipefail
# 版本号
VERSION="1.0.5"
# 安装路径
INSTALL_PATH="/usr/local/bin/gitea-runner"
# 自动识别系统架构
ARCH="$(uname -m)"
case "$ARCH" in
x86_64 | amd64)
ARCH="amd64"
;;
aarch64 | arm64)
ARCH="arm64"
;;
*)
echo "不支持的架构: $ARCH"
exit 1
;;
esac
# 版本比较:判断是否小于 1.0.0
version_lt_1() {
[ "$(printf '%s\n' "$VERSION" "1.0.0" | sort -V | head -n1)" = "$VERSION" ] && [ "$VERSION" != "1.0.0" ]
}
if version_lt_1; then
# 低于 1.0 版本
PROJECT="act_runner"
BINARY_NAME="act_runner-${VERSION}-linux-${ARCH}"
DOWNLOAD_URL="https://gitea.com/gitea/act_runner/releases/download/v${VERSION}/${BINARY_NAME}.xz"
else
# 高于或等于 1.0 版本
PROJECT="runner"
BINARY_NAME="gitea-runner-${VERSION}-linux-${ARCH}"
DOWNLOAD_URL="https://gitea.com/gitea/runner/releases/download/v${VERSION}/${BINARY_NAME}.xz"
fi
echo "版本: ${VERSION}"
echo "架构: ${ARCH}"
echo "下载地址: ${DOWNLOAD_URL}"
TMP_DIR="$(mktemp -d)"
pushd "$TMP_DIR" > /dev/null
wget "$DOWNLOAD_URL"
xz -d "${BINARY_NAME}.xz"
chmod +x "$BINARY_NAME"
mv "$BINARY_NAME" "$INSTALL_PATH"
echo "安装完成: $INSTALL_PATH"
"$INSTALL_PATH" --version || true
popd
rm -rf "$TMP_DIR"
生成配置
gitea-runner generate-config > config.yaml
gitea-runner --config config.yaml register
创建systemd服务
tee /etc/systemd/system/gitea-runner.service > /dev/null << 'EOF'
[Unit]
Description=Gitea Actions runner
Documentation=https://gitea.com/gitea/runner
After=docker.service
[Service]
Type=exec
ExecStart="/usr/local/bin/gitea-runner" "daemon" "--config" "/etc/gitea-runner/config.yaml"
ExecReload=/bin/kill -s HUP $MAINPID
WorkingDirectory=/etc/gitea-runner/
Restart=always
RestartSec=30
User=root
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
服务操作
# 开机启动
systemctl enable gitea-runner
# 启动
systemctl start gitea-runner
# 状态
systemctl status gitea-runner
# 重启
systemctl restart gitea-runner
# 停止
systemctl stop gitea-runner