ci(e2e): readiness-wait перед API-сьюитами на стенде
После deploy-stage контейнер ещё стартует, traefik отвечает 502/503,
и первые сьюиты падали с {badmatch,{ok,502}}. run-stand-api-tests.sh
теперь до 150s ждёт, пока HTTP-фронт API_HOST/ADMIN_API_HOST начнёт
отвечать (любой код, кроме 5xx), прежде чем запускать CT.
This commit is contained in:
@@ -51,6 +51,27 @@ echo " ADMIN_API_HOST=${ADMIN_API_HOST}"
|
||||
echo " WS_HOST=${WS_HOST}"
|
||||
echo " ADMIN_WS_HOST=${ADMIN_WS_HOST}"
|
||||
|
||||
# После deploy-stage контейнер стенда может ещё стартовать; traefik в
|
||||
# это время отвечает 502/503, и первые сьюиты падают с {badmatch,{ok,502}}.
|
||||
# Ждём, пока HTTP-фронт приложений начнёт отвечать (любой код, кроме 5xx).
|
||||
for probe in "${API_HOST}/v1/calendars" "${ADMIN_API_HOST}/v1/admin/health"; do
|
||||
ready=0
|
||||
for i in $(seq 1 30); do
|
||||
code=$(curl -sS -o /dev/null -w '%{http_code}' --max-time 5 "${probe}" 2>/dev/null || echo 000)
|
||||
case "${code}" in
|
||||
5*) : ;;
|
||||
000) : ;;
|
||||
*) ready=1; break ;;
|
||||
esac
|
||||
sleep 5
|
||||
done
|
||||
if [[ "${ready}" -eq 1 ]]; then
|
||||
echo " readiness OK: ${probe} (HTTP ${code})"
|
||||
else
|
||||
echo "::warning::${probe} не отвечает после 150s — стартуем сьюиты как есть"
|
||||
fi
|
||||
done
|
||||
|
||||
# Docker Desktop/WSL: --network=host часто НЕ наследует /etc/hosts стенда,
|
||||
# из‑за чего CT remote не резолвит *.ift.eventhub.local (health timeout 30s).
|
||||
docker_add_hosts=()
|
||||
|
||||
Reference in New Issue
Block a user