diff --git a/.gitea/workflows/deploy-test.yml b/.gitea/workflows/deploy-test.yml index 29cac42..efdf0bd 100644 --- a/.gitea/workflows/deploy-test.yml +++ b/.gitea/workflows/deploy-test.yml @@ -84,14 +84,16 @@ jobs: docker logs tianai-captcha 2>&1 | tail -3 ' - - name: Health check (generate API) + - name: Health check (generate API, 校验 JSON code 而非 HTTP 状态) + env: + TEST_SITE_KEY: 6a062b70-c0b3-428e-8f1b-cca402e67ddd run: | set -e SSH_CMD="ssh -i $HOME/.ssh/id_ed25519_deploy root@${{ secrets.CAPTCHA_TEST_HOST }}" OK=0 CODE=000 for i in $(seq 1 24); do - CODE=$($SSH_CMD 'curl -s -o /dev/null -w "%{http_code}" -X POST "http://127.0.0.1:18200/api/challenge/generate" -H "X-Site-Key: 6a062b70-c0b3-428e-8f1b-cca402e67ddb"' || echo 000) + CODE=$($SSH_CMD "curl -s -X POST 'http://127.0.0.1:18200/api/challenge/generate' -H 'X-Site-Key: $TEST_SITE_KEY'" | python3 -c "import json,sys; print(json.load(sys.stdin).get('code'))" 2>/dev/null || echo 000) if [ "$CODE" = "200" ]; then OK=1; break; fi sleep 5 done @@ -100,7 +102,7 @@ jobs: $SSH_CMD 'docker logs tianai-captcha --tail 30' || true exit 1 fi - echo "测试环境健康检查 OK (HTTP $CODE)" + echo "测试环境健康检查 OK (code=$CODE)" - name: Deployment summary if: always() diff --git a/.gitea/workflows/promote-prod.yml b/.gitea/workflows/promote-prod.yml index 9088fdd..86e958f 100644 --- a/.gitea/workflows/promote-prod.yml +++ b/.gitea/workflows/promote-prod.yml @@ -80,7 +80,9 @@ jobs: docker logs tianai-captcha 2>&1 | tail -3 ' - - name: Health check prod (generate + secondary-verify 探针) + - name: Health check prod (generate API, 校验 JSON code 而非 HTTP 状态) + env: + PROD_SITE_KEY: 6796bad8-4369-492f-a4d7-643a93bb07f3 run: | set -e SSH_KEY="$HOME/.ssh/id_ed25519_deploy" @@ -88,7 +90,7 @@ jobs: OK=0 CODE=000 for i in $(seq 1 24); do - CODE=$(ssh -i $SSH_KEY root@$PROD 'curl -s -o /dev/null -w "%{http_code}" -X POST "http://127.0.0.1:18200/api/challenge/generate" -H "X-Site-Key: 6796bad8-4369-492f-a4d7-643a93bb07f3"' || echo 000) + CODE=$(ssh -i $SSH_KEY root@$PROD "curl -s -X POST 'http://127.0.0.1:18200/api/challenge/generate' -H 'X-Site-Key: $PROD_SITE_KEY'" | python3 -c "import json,sys; print(json.load(sys.stdin).get('code'))" 2>/dev/null || echo 000) if [ "$CODE" = "200" ]; then OK=1; break; fi sleep 5 done @@ -98,7 +100,7 @@ jobs: echo "如需回滚: ssh prod1 后执行 docker rm -f tianai-captcha 并用 backup-xxx 标签重建容器" exit 1 fi - echo "生产环境健康检查 OK (HTTP $CODE)" + echo "生产环境健康检查 OK (code=$CODE)" - name: Promotion summary if: always()