From fe5753cbdf55ef11f5e344eac5b51bfefc118430 Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Sat, 11 Jul 2026 23:58:05 +0800 Subject: [PATCH] temp: expand runner to 3 instances --- .gitea/workflows/temp-expand-runner.yml | 168 ++++++++++++++++++++++++ 1 file changed, 168 insertions(+) create mode 100644 .gitea/workflows/temp-expand-runner.yml diff --git a/.gitea/workflows/temp-expand-runner.yml b/.gitea/workflows/temp-expand-runner.yml new file mode 100644 index 000000000..a1e4e98d7 --- /dev/null +++ b/.gitea/workflows/temp-expand-runner.yml @@ -0,0 +1,168 @@ +name: Temp Expand Runner +on: + workflow_dispatch: + push: + branches: + - 'temp/expand-runner' + +jobs: + expand: + runs-on: host + steps: + - name: Expand to 3 runner instances + run: | + set +e + + echo "========== 当前runner状态 ==========" + echo "进程数: $(ps aux | grep 'act_runner daemon' | grep -v grep | wc -l)" + ps aux | grep 'act_runner daemon' | grep -v grep + + echo "" + echo "========== 创建 runner-2 ==========" + if [ -f /var/lib/xiaoxia-ci-runner-2/.runner ]; then + echo "runner-2 已注册,跳过" + else + mkdir -p /var/lib/xiaoxia-ci-runner-2 + cp /var/lib/xiaoxia-ci/act_runner /var/lib/xiaoxia-ci-runner-2/act_runner + chmod +x /var/lib/xiaoxia-ci-runner-2/act_runner + + cat > /var/lib/xiaoxia-ci-runner-2/.runner-config.yaml << 'CFG' +log: + level: info +runner: + file: .runner + capacity: 1 + timeout: 3h + insecure: false + fetch_timeout: 5s + fetch_interval: 2s + labels: + - runtime-builder + - ubuntu-latest + - host +cache: + enabled: true + dir: /var/lib/xiaoxia-ci-runner-2/cache +host: + workdir_parent: /var/lib/xiaoxia-ci-runner-2/workspace +container: + network: host +CFG + + REG_TOKEN=$(python3 -c "import json; print(json.load(open('/var/lib/xiaoxia-ci/.runner'))['token'])" 2>/dev/null) + REG_ADDR=$(python3 -c "import json; print(json.load(open('/var/lib/xiaoxia-ci/.runner'))['address'])" 2>/dev/null) + echo "注册地址: $REG_ADDR" + + cd /var/lib/xiaoxia-ci-runner-2 + ./act_runner register \ + --instance "$REG_ADDR" \ + --token "$REG_TOKEN" \ + --name "xiaoxia-ci-runner-2" \ + --labels "runtime-builder:host,ubuntu-latest:host,host:host" \ + --no-interactive 2>&1 + echo "注册结果: $?" + fi + + echo "" + echo "========== 创建 runner-3 ==========" + if [ -f /var/lib/xiaoxia-ci-runner-3/.runner ]; then + echo "runner-3 已注册,跳过" + else + mkdir -p /var/lib/xiaoxia-ci-runner-3 + cp /var/lib/xiaoxia-ci/act_runner /var/lib/xiaoxia-ci-runner-3/act_runner + chmod +x /var/lib/xiaoxia-ci-runner-3/act_runner + + cat > /var/lib/xiaoxia-ci-runner-3/.runner-config.yaml << 'CFG' +log: + level: info +runner: + file: .runner + capacity: 1 + timeout: 3h + insecure: false + fetch_timeout: 5s + fetch_interval: 2s + labels: + - runtime-builder + - ubuntu-latest + - host +cache: + enabled: true + dir: /var/lib/xiaoxia-ci-runner-3/cache +host: + workdir_parent: /var/lib/xiaoxia-ci-runner-3/workspace +container: + network: host +CFG + + REG_TOKEN=$(python3 -c "import json; print(json.load(open('/var/lib/xiaoxia-ci/.runner'))['token'])" 2>/dev/null) + REG_ADDR=$(python3 -c "import json; print(json.load(open('/var/lib/xiaoxia-ci/.runner'))['address'])" 2>/dev/null) + + cd /var/lib/xiaoxia-ci-runner-3 + ./act_runner register \ + --instance "$REG_ADDR" \ + --token "$REG_TOKEN" \ + --name "xiaoxia-ci-runner-3" \ + --labels "runtime-builder:host,ubuntu-latest:host,host:host" \ + --no-interactive 2>&1 + echo "注册结果: $?" + fi + + echo "" + echo "========== 配置 systemd ==========" + cat > /etc/systemd/system/act_runner-2.service << 'SVC' +[Unit] +Description=Gitea Actions Runner 2 +After=gitea.service network.target +[Service] +Type=simple +WorkingDirectory=/var/lib/xiaoxia-ci-runner-2 +ExecStart=/var/lib/xiaoxia-ci-runner-2/act_runner daemon --config .runner-config.yaml +Restart=always +RestartSec=5s +User=root +[Install] +WantedBy=multi-user.target +SVC + + cat > /etc/systemd/system/act_runner-3.service << 'SVC' +[Unit] +Description=Gitea Actions Runner 3 +After=gitea.service network.target +[Service] +Type=simple +WorkingDirectory=/var/lib/xiaoxia-ci-runner-3 +ExecStart=/var/lib/xiaoxia-ci-runner-3/act_runner daemon --config .runner-config.yaml +Restart=always +RestartSec=5s +User=root +[Install] +WantedBy=multi-user.target +SVC + + systemctl daemon-reload + systemctl enable act_runner-2.service act_runner-3.service 2>&1 + systemctl start act_runner-2.service 2>&1 + systemctl start act_runner-3.service 2>&1 + sleep 10 + + echo "" + echo "========== 验证结果 ==========" + echo "总进程数: $(ps aux | grep 'act_runner daemon' | grep -v grep | wc -l)" + ps aux | grep 'act_runner daemon' | grep -v grep + echo "" + echo "服务状态:" + systemctl is-active act_runner.service act_runner-2.service act_runner-3.service 2>&1 + echo "" + echo "各runner注册信息:" + for d in /var/lib/xiaoxia-ci /var/lib/xiaoxia-ci-runner-2 /var/lib/xiaoxia-ci-runner-3; do + if [ -f "$d/.runner" ]; then + python3 -c " +import json +d = json.load(open('$d/.runner')) +print(f' {d[\"name\"]}: id={d[\"id\"]}') +" 2>/dev/null + fi + done + echo "" + echo "========== 扩容完成 =========="