chore: deep probe new runner config structure
New Runner Deep Probe / Deep probe new runner 3 (push) Successful in 0s
New Runner Deep Probe / Deep probe new runner 2 (push) Successful in 0s
New Runner Deep Probe / Deep probe new runner 4 (push) Successful in 0s
New Runner Deep Probe / Deep probe new runner 5 (push) Successful in 0s
New Runner Deep Probe / Deep probe new runner 6 (push) Successful in 0s
New Runner Deep Probe / Deep probe new runner 7 (push) Successful in 0s
New Runner Deep Probe / Deep probe new runner 9 (push) Successful in 0s
New Runner Deep Probe / Deep probe new runner 8 (push) Successful in 0s
New Runner Deep Probe / Deep probe new runner 10 (push) Successful in 0s
New Runner Deep Probe / Deep probe new runner 1 (push) Successful in 11s

This commit is contained in:
2026-07-14 12:03:04 +08:00
parent e2353e08c2
commit 174b4ee1f6
+87 -126
View File
@@ -1,176 +1,137 @@
name: Probe All Runner Hosts
name: New Runner Deep Probe
on:
push:
branches: [ops/runner-labels]
jobs:
probe-a:
name: Probe Host A
deep-new-1:
name: Deep probe new runner 1
runs-on: saas
timeout-minutes: 8
steps:
- name: Full probe
- name: Probe runner configs on new host
shell: bash
run: |
set +e
echo "===== HOSTNAME ====="
docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- hostname
HOSTNAME=$(docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- hostname)
echo "HOST: $HOSTNAME"
# 只处理新服务器
if [[ "$HOSTNAME" != *"iZbp15fchyez91r4b3ok74Z"* ]]; then
echo "不是新服务器,跳过深度探测"
exit 0
fi
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_"
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 ""
echo "===== SYSTEMD 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>/dev/null | grep -i -E "runner|act"
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 ""
echo "===== /opt CONTENTS ====="
docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- ls -la /opt/
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 "===== /opt/act-runner CONTENTS (if exists) ====="
docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- ls -laR /opt/act-runner/ 2>/dev/null || echo "not found"
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 "===== FIND .runner in common dirs ====="
docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- find /opt /root /home /etc /srv /var -maxdepth 5 -name ".runner" -type f 2>/dev/null
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 "===== FIND runner binaries ====="
docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- find /opt /usr/local/bin /usr/bin -name "*runner*" -type f -executable 2>/dev/null
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 "===== DOCKER PS (full) ====="
docker ps -a --format "{{.Names}}|{{.Image}}|{{.Status}}"
echo "===== /etc/systemd/system 找runner ====="
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 "===== CMD AGENT CHECK (127.0.0.1:18888) ====="
docker run --rm --privileged --pid=host --net=host alpine:3.20 sh -c "curl -s --max-time 3 http://127.0.0.1:18888/health && echo '' || echo 'no cmd agent on 18888'" 2>/dev/null || echo "check failed"
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
probe-b:
name: Probe Host B
deep-new-2:
name: Deep probe new runner 2
runs-on: saas
timeout-minutes: 8
timeout-minutes: 5
steps:
- name: Full probe
shell: bash
run: |
set +e
echo "===== HOSTNAME ====="
docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- 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_"
echo ""
echo "===== FIND .runner ====="
docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- find /opt /root /home -maxdepth 5 -name ".runner" -type f 2>/dev/null
echo ""
echo "===== /opt dirs ====="
docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- ls -d /opt/*/ 2>/dev/null
probe-c:
name: Probe Host C
runs-on: saas
timeout-minutes: 8
steps:
- name: Full probe
shell: bash
run: |
set +e
echo "===== HOSTNAME ====="
docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- 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_"
echo ""
echo "===== FIND .runner ====="
docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- find /opt /root /home -maxdepth 5 -name ".runner" -type f 2>/dev/null
echo ""
echo "===== /opt dirs ====="
docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- ls -d /opt/*/ 2>/dev/null
probe-d:
name: Probe Host D
runs-on: saas
timeout-minutes: 8
steps:
- name: Full probe
shell: bash
run: |
set +e
echo "===== HOSTNAME ====="
docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- 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_"
echo ""
echo "===== FIND .runner ====="
docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- find /opt /root /home -maxdepth 5 -name ".runner" -type f 2>/dev/null
echo ""
echo "===== /opt dirs ====="
docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- ls -d /opt/*/ 2>/dev/null
probe-e:
name: Probe Host E
runs-on: saas
timeout-minutes: 8
steps:
- name: Full probe
shell: bash
run: |
set +e
echo "===== HOSTNAME ====="
docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- 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_"
echo ""
echo "===== FIND .runner ====="
docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- find /opt /root /home -maxdepth 5 -name ".runner" -type f 2>/dev/null
echo ""
echo "===== /opt dirs ====="
docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- ls -d /opt/*/ 2>/dev/null
probe-f:
name: Probe Host F
runs-on: saas
timeout-minutes: 3
steps:
- name: placeholder
- name: probe
shell: bash
run: hostname
probe-g:
name: Probe Host G
deep-new-3:
name: Deep probe new runner 3
runs-on: saas
timeout-minutes: 3
timeout-minutes: 5
steps:
- name: placeholder
- name: probe
shell: bash
run: hostname
probe-h:
name: Probe Host H
deep-new-4:
name: Deep probe new runner 4
runs-on: saas
timeout-minutes: 3
timeout-minutes: 5
steps:
- name: placeholder
- name: probe
shell: bash
run: hostname
probe-i:
name: Probe Host I
deep-new-5:
name: Deep probe new runner 5
runs-on: saas
timeout-minutes: 3
timeout-minutes: 5
steps:
- name: placeholder
- name: probe
shell: bash
run: hostname
probe-j:
name: Probe Host J
deep-new-6:
name: Deep probe new runner 6
runs-on: saas
timeout-minutes: 3
timeout-minutes: 5
steps:
- name: placeholder
- name: probe
shell: bash
run: hostname
deep-new-7:
name: Deep probe new runner 7
runs-on: saas
timeout-minutes: 5
steps:
- name: probe
shell: bash
run: hostname
deep-new-8:
name: Deep probe new runner 8
runs-on: saas
timeout-minutes: 5
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
shell: bash
run: hostname