diff --git a/.gitea/workflows/runner-maintenance.yaml b/.gitea/workflows/runner-maintenance.yaml index d0e254a..612cb76 100644 --- a/.gitea/workflows/runner-maintenance.yaml +++ b/.gitea/workflows/runner-maintenance.yaml @@ -5,6 +5,10 @@ on: - cron: "0 */6 * * *" workflow_dispatch: +env: + GITEA_URL: https://gitea.windychen00n.work + VERDACCIO_URL: http://172.172.2.4:4873 + jobs: health-check: runs-on: docker @@ -22,34 +26,19 @@ jobs: - name: Check Gitea health id: gitea run: | - 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 + if curl -sf "$GITEA_URL/api/healthz" | grep -q '"status":"pass"'; then + echo "result=ok|Gitea 健康检查通过" >> $GITHUB_OUTPUT + else + echo "result=fail|Gitea 健康检查失败" >> $GITHUB_OUTPUT exit 1 fi - name: Check Verdaccio health id: verdaccio run: | - 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 + if curl -sf "$VERDACCIO_URL/-/ping" >/dev/null 2>&1; then + echo "result=ok|Verdaccio 正常" >> $GITHUB_OUTPUT + else echo "result=fail|Verdaccio 不可达" >> $GITHUB_OUTPUT exit 1 fi @@ -57,9 +46,8 @@ jobs: - name: Check runner registration id: runner run: | - GITEA_URL="${{ vars.GITEA_URL }}" RESP=$(curl -sf -u "${{ secrets.CI_USER }}:${{ secrets.CI_PASSWORD }}" \ - "${GITEA_URL}/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)