diff --git a/.gitea/workflows/register-runners.yml b/.gitea/workflows/register-runners.yml index 65fd70571..eb115589b 100644 --- a/.gitea/workflows/register-runners.yml +++ b/.gitea/workflows/register-runners.yml @@ -3,89 +3,11 @@ on: workflow_dispatch: jobs: - register-on-host: + register: runs-on: saas steps: - - name: register-6-saas-runners + - uses: actions/checkout@v3 + - name: run-on-host run: | - # 通过 nsenter 进入宿主机执行注册 - docker run --rm --privileged --pid=host alpine nsenter -t 1 -m -u -n -i sh -c ' - set -e - echo "=== Host Info ===" - hostname - ls /opt/act-runner/ 2>/dev/null || echo "no /opt/act-runner" - - # 找act_runner二进制 - ACT_RUNNER="" - for p in /opt/act-runner/runner-1/act_runner /opt/act-runner/runner-2/act_runner /usr/local/bin/act_runner; do - if [ -f "$p" ]; then - ACT_RUNNER="$p" - echo "Found act_runner: $p" - break - fi - done - - if [ -z "$ACT_RUNNER" ]; then - echo "act_runner not found, searching..." - find /opt -name act_runner -type f 2>/dev/null | head -5 - exit 1 - fi - - # 检测是否是新服务器(有5个以上runner目录) - RUNNER_COUNT=$(find /opt/act-runner -maxdepth 1 -type d -name "runner-*" 2>/dev/null | wc -l) - echo "Existing runner dirs: $RUNNER_COUNT" - - if [ "$RUNNER_COUNT" -lt 5 ]; then - echo "Not the new server, skipping" - exit 0 - fi - - echo "=== New server detected! Registering 6 repo-level runners ===" - - REPO_TOKEN="ZMFH02WcdElay5ATmhhQYe1WNTESO9XMXcF0H9Tj" - GITEA_URL="https://git.xiaoxiajianji.com" - BASE_DIR="/opt/act-runner" - LABELS="saas,runtime-builder,host,ubuntu-latest" - - for i in 6 7 8 9 10 11; do - RUNNER_DIR="${BASE_DIR}/saas-runner-${i}" - echo "--- 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 - - # 创建systemd服务 - cat > /etc/systemd/system/gitea-saas-runner-${i}.service << EOF -[Unit] -Description=Gitea Actions SAAS Runner ${i} -After=network.target - -[Service] -Type=simple -WorkingDirectory=${RUNNER_DIR} -ExecStart=${ACT_RUNNER} daemon -Restart=always -RestartSec=5 -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}" - done - - echo "=== DONE ===" - systemctl status gitea-saas-runner-6 --no-pager | head -10 - echo "..." - ' + chmod +x register_runners.sh + cat register_runners.sh | docker run --rm -i --privileged --pid=host alpine nsenter -t 1 -m -u -n -i sh