From 01609c8fc2a19e58402efa4351e2ef727d8b6378 Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Mon, 13 Jul 2026 17:50:58 +0800 Subject: [PATCH] add fix-all-runners --- .gitea/workflows/fix-all-runners.yml | 90 ++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 .gitea/workflows/fix-all-runners.yml diff --git a/.gitea/workflows/fix-all-runners.yml b/.gitea/workflows/fix-all-runners.yml new file mode 100644 index 000000000..186fcb38d --- /dev/null +++ b/.gitea/workflows/fix-all-runners.yml @@ -0,0 +1,90 @@ +name: fix-all-runners +on: + workflow_dispatch: + +jobs: + fix: + runs-on: saas + steps: + - uses: actions/checkout@v3 + - name: fix runners on new server + run: | + KEY_B64="LS0tLS1CRUdJTiBPUEVOU1NIIFBSSVZBVEUgS0VZLS0tLS0KYjNCbGJuTnphQzFyWlhrdGRqRUFBQUFBQkc1dmJtVUFBQUFFYm05dVpRQUFBQUFBQUFBQkFBQUFNQUFBQUF0emMyZ3RaVwpReU5UVXhPUUFBQUNEVEVnWm5CVUZsQ1J4QlVGQmh5YlBOSFFFaGp6QzhlNUdGNjBoU2JQUDBCSWJBQUFKSVF4R05vCmtNUmphQUFBQXR6YzJndFpXUXlOVFV4T1FBQUFDRFZFVWduQlVGbENSeEJVRkJoeWJQTkhRSWhqekM4ZTVHRjYwaFNiClBQMEJJYkFBQUFFRDJHb3p1VTRCQWlDcWJnMGF5R3hnaUR2ZlMveEkxU0Z2YjMyb0x6VG5uOC9vYXE0Q1RtOUVSOXUKMW9rSk5KK2RBU0dQTUw4M2tZWXJTRkpzOC9RSWVsc0FBQUFGSEoxYm01bGNpMWh6RzFwYkI0YVdGdmVHbEFBUT09Ci0tLS0tRU5EIE9QRU5TU0ggUFJJVkFURSBLRVktLS0tLQo=" + docker run --rm --privileged --pid=host alpine:latest nsenter -t 1 -m -u -i -n -p -- bash -c " + echo \"\LS0tLS1CRUdJTiBPUEVOU1NIIFBSSVZBVEUgS0VZLS0tLS0KYjNCbGJuTnphQzFyWlhrdGRqRUFBQUFBQkc1dmJtVUFBQUFFYm05dVpRQUFBQUFBQUFBQkFBQUFNQUFBQUF0emMyZ3RaVwpReU5UVXhPUUFBQUNEVEVnWm5CVUZsQ1J4QlVGQmh5YlBOSFFFaGp6QzhlNUdGNjBoU2JQUDBCSWJBQUFKSVF4R05vCmtNUmphQUFBQXR6YzJndFpXUXlOVFV4T1FBQUFDRFZFVWduQlVGbENSeEJVRkJoeWJQTkhRSWhqekM4ZTVHRjYwaFNiClBQMEJJYkFBQUFFRDJHb3p1VTRCQWlDcWJnMGF5R3hnaUR2ZlMveEkxU0Z2YjMyb0x6VG5uOC9vYXE0Q1RtOUVSOXUKMW9rSk5KK2RBU0dQTUw4M2tZWXJTRkpzOC9RSWVsc0FBQUFGSEoxYm01bGNpMWh6RzFwYkI0YVdGdmVHbEFBUT09Ci0tLS0tRU5EIE9QRU5TU0ggUFJJVkFURSBLRVktLS0tLQo=\" | base64 -d > /tmp/new_server_key + chmod 600 /tmp/new_server_key + SERVER=root@172.30.18.199 + SSH=\"ssh -i /tmp/new_server_key -o StrictHostKeyChecking=no \\" + + echo '=== 1. Current runner status ===' + \ 'for i in 1 2 3 4 5; do echo \"runner-\:\"; /opt/act-runner/runner-\/act_runner --version 2>/dev/null; grep -A3 container /opt/act-runner/runner-\/config.yml 2>/dev/null | head -5; echo; done' + + echo '' + echo '=== 2. Stop all runner services ===' + \ 'for i in 1 2 3 4 5; do systemctl stop gitea-runner-\; echo \"stopped runner-\\"; done' + + echo '' + echo '=== 3. Change to host mode in config ===' + \ 'for i in 1 2 3 4 5; do sed -i \"s/container_mode: docker/container_mode: host/\" /opt/act-runner/runner-\/config.yml; sed -i \"s/mode: docker/mode: host/\" /opt/act-runner/runner-\/config.yml; grep -E \"mode:\" /opt/act-runner/runner-\/config.yml; done' + + echo '' + echo '=== 4. Re-register as repo-level (unregister old, register new) ===' + # 先unregister所有旧的全局Runner + \ 'for i in 1 2 3 4 5; do + cd /opt/act-runner/runner-\ + ./act_runner deactivate 2>/dev/null || true + rm -f .runner + echo \"deactivated runner-\\" + done' + + echo '' + echo '=== 5. Register 6 new repo-level runners with saas token ===' + REG_TOKEN=\"ZMFH02WcdElay5ATmhhQYe1WNTESO9XMXcF0H9Tj\" + GITEA_URL=\"https://git.xiaoxiajianji.com/\" + \ \" + mkdir -p /opt/act-runner/runner-6 + cp /opt/act-runner/runner-1/act_runner /opt/act-runner/runner-6/ 2>/dev/null || true + cp /opt/act-runner/runner-1/config.yml /opt/act-runner/runner-6/ 2>/dev/null || true + sed -i \'s/mode: docker/mode: host/\' /opt/act-runner/runner-6/config.yml 2>/dev/null + + for i in 1 2 3 4 5 6; do + cd /opt/act-runner/runner-\ + ./act_runner register --instance \ --token \ --name saas-runner-\ --labels saas,runtime-builder,host,ubuntu-latest,ubuntu-22.04 --no-interactive 2>&1 + echo \"registered runner-\, exit=\0\" + done + \" + + echo '' + echo '=== 6. Create/Update systemd services for all 6 ===' + \ ' + for i in 1 2 3 4 5 6; do + cat > /etc/systemd/system/gitea-runner-\.service << EOF +[Unit] +Description=Gitea Actions Runner \ +After=network.target + +[Service] +WorkingDirectory=/opt/act-runner/runner-\ +ExecStart=/opt/act-runner/runner-\/act_runner daemon +Restart=always +RestartSec=5 +User=root + +[Install] +WantedBy=multi-user.target +EOF + systemctl daemon-reload + systemctl enable gitea-runner-\ + systemctl start gitea-runner-\ + echo \"started runner-\\" + done + ' + + echo '' + echo '=== 7. Verify all running ===' + sleep 3 + \ 'systemctl status gitea-runner-{1,2,3,4,5,6} --no-pager | head -30' + + rm -f /tmp/new_server_key + " 2>&1 + echo '=== DONE ==='