diff --git a/.gitea/workflows/runner-maintenance.yaml b/.gitea/workflows/runner-maintenance.yaml index eeb3fef..d0e254a 100644 --- a/.gitea/workflows/runner-maintenance.yaml +++ b/.gitea/workflows/runner-maintenance.yaml @@ -22,19 +22,34 @@ jobs: - name: Check Gitea health id: gitea run: | - if curl -sf http://gitea:3000/api/healthz | grep -q '"status":"pass"'; then - echo "result=ok|Gitea 健康检查通过" >> $GITHUB_OUTPUT - else - echo "result=fail|Gitea 健康检查失败" >> $GITHUB_OUTPUT + GITEA_URL="${{ vars.GITEA_URL }}" + GITEA_INTERNAL="${{ vars.GITEA_INTERNAL }}" + OK=0 + for URL in "$GITEA_URL/api/healthz" "$GITEA_INTERNAL/api/healthz" "http://gitea:3000/api/healthz"; do + if curl -sf "$URL" | grep -q '"status":"pass"'; then + echo "result=ok|Gitea 健康 ($URL)" >> $GITHUB_OUTPUT + OK=1 + break + fi + done + if [ "$OK" -eq 0 ]; then + echo "result=fail|Gitea 健康检查失败(外网+内网均不可达)" >> $GITHUB_OUTPUT exit 1 fi - name: Check Verdaccio health id: verdaccio run: | - if curl -sf http://verdaccio:4873/-/ping >/dev/null 2>&1; then - echo "result=ok|Verdaccio 正常" >> $GITHUB_OUTPUT - else + VERD="${{ vars.VERDACCIO_INTERNAL }}" + OK=0 + for URL in "$VERD/-/ping" "http://verdaccio:4873/-/ping"; do + if curl -sf "$URL" >/dev/null 2>&1; then + echo "result=ok|Verdaccio 正常 ($URL)" >> $GITHUB_OUTPUT + OK=1 + break + fi + done + if [ "$OK" -eq 0 ]; then echo "result=fail|Verdaccio 不可达" >> $GITHUB_OUTPUT exit 1 fi @@ -42,8 +57,9 @@ jobs: - name: Check runner registration id: runner run: | + GITEA_URL="${{ vars.GITEA_URL }}" RESP=$(curl -sf -u "${{ secrets.CI_USER }}:${{ secrets.CI_PASSWORD }}" \ - "http://gitea:3000/api/v1/admin/actions/runners") + "${GITEA_URL}/api/v1/admin/actions/runners") ONLINE=$(echo "$RESP" | grep -c '"status":"online"' || true) if [ "${ONLINE:-0}" -ge 1 ]; then NAME=$(echo "$RESP" | grep -o '"name":"[^"]*"' | head -1 | cut -d'"' -f4) @@ -58,4 +74,4 @@ jobs: run: | curl -s -X POST "https://oapi.dingtalk.com/robot/send?access_token=${{ secrets.DINGDING_TOKEN }}" \ -H "Content-Type: application/json" \ - -d '{"msgtype":"markdown","markdown":{"title":"❌ Gitea Runner 自主维护告警 chen-fnos","text":"## ❌ Gitea Runner 自主维护告警 chen-fnos\n\n- Gitea: ${{ steps.gitea.outputs.result }}\n- Verdaccio: ${{ steps.verdaccio.outputs.result }}\n- Runner: ${{ steps.runner.outputs.result }}\n\n请检查 gitea-runner 容器状态"}}' + -d '{"msgtype":"markdown","markdown":{"title":"❌ Gitea Runner 自主维护告警 chen-fnos","text":"## ❌ Gitea Runner 自主维护告警 chen-fnos\n\n- Gitea: ${{ steps.gitea.outputs.result }}\n- Verdaccio: ${{ steps.verdaccio.outputs.result }}\n- Runner: ${{ steps.runner.outputs.result }}\n\n请检查 gitea-runner 容器"}}'