fix: correct act_runner path for new server

This commit is contained in:
2026-07-13 17:04:22 +08:00
parent c6774627dc
commit 2e4ac7abba
+58 -35
View File
@@ -1,39 +1,57 @@
#!/bin/bash
set -e
REPO_TOKEN="ZMFH02WcdElay5ATmhhQYe1WNTESO9XMXcF0H9Tj"
GITEA_URL="https://git.xiaoxiajianji.com"
BASE_DIR="/opt/act-runner"
LABELS="saas,runtime-builder,host,ubuntu-latest"
echo "=== 探测Runner环境 ==="
echo "Hostname: $(hostname)"
echo "IPs: $(hostname -I)"
# 找act_runner
ACT_RUNNER=""
for p in /opt/act-runner/runner-1/act_runner /opt/act-runner/runner-2/act_runner /var/lib/xiaoxia-ci/act_runner /usr/local/bin/act_runner; do
if [ -f "$p" ]; then
ACT_RUNNER="$p"
echo "Found act_runner: $p"
$p --version 2>&1 || true
break
fi
done
# 找到act_runner二进制
ACT_RUNNER=$(find /opt/act-runner -name act_runner -type f 2>/dev/null | head -1)
if [ -z "$ACT_RUNNER" ]; then
echo "ERROR: act_runner binary not found"
find / -name act_runner -type f 2>/dev/null | head -5
echo "Searching for act_runner..."
find /opt /var -name act_runner -type f 2>/dev/null | head -10
echo "ERROR: act_runner not found"
exit 1
fi
echo "Found act_runner: $ACT_RUNNER"
echo "Version: $($ACT_RUNNER --version 2>&1)"
# 注册6个新的仓库级Runner
for i in $(seq 6 11); do
RUNNER_DIR="${BASE_DIR}/saas-runner-${i}"
echo "=== Registering saas-runner-${i} ==="
# 只在新服务器上执行(hostname包含new或特定标识)
# 或者只在有多个runner目录的服务器上执行
RUNNER_COUNT=$(find /opt/act-runner -maxdepth 1 -type d -name "runner-*" 2>/dev/null | wc -l)
echo "Runner dirs count: $RUNNER_COUNT"
# 如果是新服务器(有5个runner目录),执行注册
if [ "$RUNNER_COUNT" -ge 5 ]; then
echo "=== 检测到新服务器,开始注册6个仓库级Runner ==="
mkdir -p "$RUNNER_DIR"
cd "$RUNNER_DIR"
REPO_TOKEN="ZMFH02WcdElay5ATmhhQYe1WNTESO9XMXcF0H9Tj"
GITEA_URL="https://git.xiaoxiajianji.com"
BASE_DIR="/opt/act-runner"
LABELS="saas,runtime-builder,host,ubuntu-latest"
# 注册
$ACT_RUNNER register \
--instance "$GITEA_URL" \
--token "$REPO_TOKEN" \
--name "saas-runner-${i}" \
--labels "$LABELS" \
--no-interactive 2>&1
# 创建systemd服务
cat > /etc/systemd/system/gitea-saas-runner-${i}.service << EOF
for i in $(seq 6 11); do
RUNNER_DIR="${BASE_DIR}/saas-runner-${i}"
echo "--- Registering saas-runner-${i} ---"
mkdir -p "$RUNNER_DIR"
cd "$RUNNER_DIR"
$ACT_RUNNER register \
--instance "$GITEA_URL" \
--token "$REPO_TOKEN" \
--name "saas-runner-${i}" \
--labels "$LABELS" \
--no-interactive 2>&1
cat > /etc/systemd/system/gitea-saas-runner-${i}.service << EOF
[Unit]
Description=Gitea Actions Runner saas-${i}
After=network.target
@@ -49,13 +67,18 @@ User=root
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable gitea-saas-runner-${i}
systemctl start gitea-saas-runner-${i}
echo "Started saas-runner-${i}"
sleep 1
done
systemctl daemon-reload
systemctl enable gitea-saas-runner-${i}
systemctl start gitea-saas-runner-${i}
echo "Started saas-runner-${i}"
sleep 1
done
echo "=== All 6 runners registered ==="
systemctl status gitea-saas-runner-* --no-pager | head -40
echo "=== 全部注册完成 ==="
systemctl status gitea-saas-runner-* --no-pager | head -60
else
echo "不是新服务器(Runner目录不足5个),跳过注册"
echo "这台机器上Runner目录数: $RUNNER_COUNT"
ls /opt/act-runner/ 2>/dev/null || echo "no /opt/act-runner"
fi