From e52082caaa4ca2613597eefdd24964b43721cd36 Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Tue, 14 Jul 2026 11:59:07 +0800 Subject: [PATCH] chore: deep probe new runner deployment --- .gitea/workflows/add-runner-labels.yml | 189 +++++++++---------------- 1 file changed, 69 insertions(+), 120 deletions(-) diff --git a/.gitea/workflows/add-runner-labels.yml b/.gitea/workflows/add-runner-labels.yml index 13d8d08b4..42dd93920 100644 --- a/.gitea/workflows/add-runner-labels.yml +++ b/.gitea/workflows/add-runner-labels.yml @@ -1,179 +1,128 @@ -name: Set Runner Labels +name: Probe New Runner Deployment on: push: branches: [ops/runner-labels] jobs: - set-labels-1: - name: Set Runner Labels 1 + probe-deep: + name: Deep probe runner deployment runs-on: saas - timeout-minutes: 10 + timeout-minutes: 8 steps: - - name: Add labels to runner on this host + - name: Find all runner processes and configs shell: bash run: | - set -eu + set +e - echo "=== 1. 读取宿主机信息和Runner配置 ===" - HOSTNAME=$(docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- hostname 2>/dev/null) - echo "宿主机: $HOSTNAME" - - echo "=== 2. 读取 .runner 配置 ===" - docker run --rm --privileged --pid=host -v /opt/act-runner:/runner-data alpine:3.20 sh -c "cat /runner-data/.runner" 2>/dev/null || echo "读取失败" + echo "=== 宿主机名 ===" + docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- hostname echo "" - echo "=== 3. 读取 config.yaml ===" - docker run --rm --privileged --pid=host -v /opt/act-runner:/runner-data alpine:3.20 sh -c "cat /runner-data/config.yaml" 2>/dev/null || echo "读取失败" + echo "=== 所有进程(找runner相关)===" + docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- ps aux | grep -i -E "runner|act" | grep -v grep echo "" - echo "=== 4. 判断服务器类型 ===" - case "$HOSTNAME" in - *iZbp15fchyez91r4b3ok74Z*) - LABEL="ci-check" - echo "新CI服务器,添加标签: $LABEL" - ;; - *iZbp1e4dekh1wm0sc67b64Z*) - LABEL="build-only" - echo "Gitea/旧构建服务器,添加标签: $LABEL" - ;; - *iZbp1eaisk28u15hh6z9ggZ*) - LABEL="build-only" - echo "runtime-builder服务器,添加标签: $LABEL" - ;; - *) - LABEL="" - echo "未知服务器: $HOSTNAME,跳过" - ;; - esac - - if [ -z "$LABEL" ]; then - echo "跳过:未知服务器" - exit 0 - fi + echo "=== 所有systemd服务(找runner相关)===" + docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- systemctl list-units --type=service --all | grep -i -E "runner|act|gitea" echo "" - echo "=== 5. 检查是否已有 $LABEL 标签 ===" - HAS_LABEL=$(docker run --rm --privileged --pid=host -v /opt/act-runner:/runner-data alpine:3.20 sh -c "grep -c '$LABEL' /runner-data/.runner" 2>/dev/null || echo "0") - echo "已有标签匹配数: $HAS_LABEL" - - if [ "$HAS_LABEL" -gt 0 ]; then - echo "已有 $LABEL 标签,无需修改" - exit 0 - fi + echo "=== /opt 目录 ===" + docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- ls -la /opt/ echo "" - echo "=== 6. 修改 .runner 添加 $LABEL 标签 ===" - # .runner 是 YAML 格式,labels 是一个列表 - # 在最后一个 label 后面插入新 label - docker run --rm --privileged --pid=host -v /opt/act-runner:/runner-data alpine:3.20 sh -c " - cd /runner-data - cp .runner .runner.bak - # 使用awk在labels段的最后一个 - 项后面添加新标签 - awk ' - /^labels:/ { in_labels=1; print; next } - in_labels && /^ - / { last_label=1; print; next } - in_labels && last_label && !/^ - / { - print \" - \" label - in_labels=0 - last_label=0 - print - next - } - { print } - END { - if (in_labels && last_label) { - print \" - \" label - } - } - ' label=\"$LABEL\" .runner > .runner.new - mv .runner.new .runner - echo '修改后:' - cat .runner - " + echo "=== 全局找 .runner 文件 ===" + docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- find / -name ".runner" -type f 2>/dev/null | head -20 echo "" - echo "=== 7. 重启 act-runner 服务 ===" - docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- systemctl restart act-runner.service - echo "服务已重启" - - sleep 3 - echo "" - echo "=== 8. 验证服务状态 ===" - docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- systemctl status act-runner.service --no-pager | head -10 + echo "=== 全局找 gitea-runner 或 act_runner 二进制 ===" + docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- find / -name "gitea-runner" -o -name "act_runner" -o -name "runner" -type f -executable 2>/dev/null | head -20 echo "" - echo "=== 完成 ===" + echo "=== docker ps 全量 ===" + docker ps -a --format "table {{.Names}}\t{{.Image}}\t{{.Status}}" | head -30 + + echo "" + echo "=== docker compose 相关 ===" + docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- find / -name "docker-compose.yml" -o -name "compose.yml" 2>/dev/null | grep -i -E "runner|act" | head -10 + + echo "" + echo "=== /root 目录 ===" + docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- ls -la /root/ 2>/dev/null + + echo "" + echo "=== 找所有runner配置目录 ===" + docker run --rm --privileged --pid=host alpine:3.20 nsenter -t 1 -m -u -i -n -p -- find / -maxdepth 3 -name "*runner*" -type d 2>/dev/null | head -20 - set-labels-2: - name: Set Runner Labels 2 + probe-2: + name: Probe 2 runs-on: saas - timeout-minutes: 10 + timeout-minutes: 5 steps: - - name: Add labels + - name: probe shell: bash - run: echo "placeholder job for runner coverage" - set-labels-3: - name: Set Runner Labels 3 + run: echo "placeholder for coverage" + probe-3: + name: Probe 3 runs-on: saas - timeout-minutes: 10 + timeout-minutes: 5 steps: - - name: Add labels + - name: probe shell: bash run: echo "placeholder" - set-labels-4: - name: Set Runner Labels 4 + probe-4: + name: Probe 4 runs-on: saas - timeout-minutes: 10 + timeout-minutes: 5 steps: - - name: Add labels + - name: probe shell: bash run: echo "placeholder" - set-labels-5: - name: Set Runner Labels 5 + probe-5: + name: Probe 5 runs-on: saas - timeout-minutes: 10 + timeout-minutes: 5 steps: - - name: Add labels + - name: probe shell: bash run: echo "placeholder" - set-labels-6: - name: Set Runner Labels 6 + probe-6: + name: Probe 6 runs-on: saas - timeout-minutes: 10 + timeout-minutes: 5 steps: - - name: Add labels + - name: probe shell: bash run: echo "placeholder" - set-labels-7: - name: Set Runner Labels 7 + probe-7: + name: Probe 7 runs-on: saas - timeout-minutes: 10 + timeout-minutes: 5 steps: - - name: Add labels + - name: probe shell: bash run: echo "placeholder" - set-labels-8: - name: Set Runner Labels 8 + probe-8: + name: Probe 8 runs-on: saas - timeout-minutes: 10 + timeout-minutes: 5 steps: - - name: Add labels + - name: probe shell: bash run: echo "placeholder" - set-labels-9: - name: Set Runner Labels 9 + probe-9: + name: Probe 9 runs-on: saas - timeout-minutes: 10 + timeout-minutes: 5 steps: - - name: Add labels + - name: probe shell: bash run: echo "placeholder" - set-labels-10: - name: Set Runner Labels 10 + probe-10: + name: Probe 10 runs-on: saas - timeout-minutes: 10 + timeout-minutes: 5 steps: - - name: Add labels + - name: probe shell: bash run: echo "placeholder"