fix(ci): 健康检查改为校验 JSON code(ApiResponse 错误也返回 HTTP 200), 修正 test 站点 siteKey 硬编码笔误
deploy-test / build-and-deploy-test (push) Successful in 1m55s
deploy-test / build-and-deploy-test (push) Successful in 1m55s
This commit is contained in:
@@ -84,14 +84,16 @@ jobs:
|
|||||||
docker logs tianai-captcha 2>&1 | tail -3
|
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: |
|
run: |
|
||||||
set -e
|
set -e
|
||||||
SSH_CMD="ssh -i $HOME/.ssh/id_ed25519_deploy root@${{ secrets.CAPTCHA_TEST_HOST }}"
|
SSH_CMD="ssh -i $HOME/.ssh/id_ed25519_deploy root@${{ secrets.CAPTCHA_TEST_HOST }}"
|
||||||
OK=0
|
OK=0
|
||||||
CODE=000
|
CODE=000
|
||||||
for i in $(seq 1 24); do
|
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
|
if [ "$CODE" = "200" ]; then OK=1; break; fi
|
||||||
sleep 5
|
sleep 5
|
||||||
done
|
done
|
||||||
@@ -100,7 +102,7 @@ jobs:
|
|||||||
$SSH_CMD 'docker logs tianai-captcha --tail 30' || true
|
$SSH_CMD 'docker logs tianai-captcha --tail 30' || true
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
echo "测试环境健康检查 OK (HTTP $CODE)"
|
echo "测试环境健康检查 OK (code=$CODE)"
|
||||||
|
|
||||||
- name: Deployment summary
|
- name: Deployment summary
|
||||||
if: always()
|
if: always()
|
||||||
|
|||||||
@@ -80,7 +80,9 @@ jobs:
|
|||||||
docker logs tianai-captcha 2>&1 | tail -3
|
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: |
|
run: |
|
||||||
set -e
|
set -e
|
||||||
SSH_KEY="$HOME/.ssh/id_ed25519_deploy"
|
SSH_KEY="$HOME/.ssh/id_ed25519_deploy"
|
||||||
@@ -88,7 +90,7 @@ jobs:
|
|||||||
OK=0
|
OK=0
|
||||||
CODE=000
|
CODE=000
|
||||||
for i in $(seq 1 24); do
|
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
|
if [ "$CODE" = "200" ]; then OK=1; break; fi
|
||||||
sleep 5
|
sleep 5
|
||||||
done
|
done
|
||||||
@@ -98,7 +100,7 @@ jobs:
|
|||||||
echo "如需回滚: ssh prod1 后执行 docker rm -f tianai-captcha 并用 backup-xxx 标签重建容器"
|
echo "如需回滚: ssh prod1 后执行 docker rm -f tianai-captcha 并用 backup-xxx 标签重建容器"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
echo "生产环境健康检查 OK (HTTP $CODE)"
|
echo "生产环境健康检查 OK (code=$CODE)"
|
||||||
|
|
||||||
- name: Promotion summary
|
- name: Promotion summary
|
||||||
if: always()
|
if: always()
|
||||||
|
|||||||
Reference in New Issue
Block a user