diff --git a/scripts/run-stand-api-tests.sh b/scripts/run-stand-api-tests.sh index 17f58ef..a97ac00 100644 --- a/scripts/run-stand-api-tests.sh +++ b/scripts/run-stand-api-tests.sh @@ -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=()