From a061674408ec2c9379c47dbb8f0634149814767d Mon Sep 17 00:00:00 2001 From: Aleksey Sabilin Date: Sun, 23 Aug 2026 23:17:32 +0300 Subject: [PATCH] =?UTF-8?q?ci(e2e):=20readiness-wait=20=D0=BF=D0=B5=D1=80?= =?UTF-8?q?=D0=B5=D0=B4=20API-=D1=81=D1=8C=D1=8E=D0=B8=D1=82=D0=B0=D0=BC?= =?UTF-8?q?=D0=B8=20=D0=BD=D0=B0=20=D1=81=D1=82=D0=B5=D0=BD=D0=B4=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit После deploy-stage контейнер ещё стартует, traefik отвечает 502/503, и первые сьюиты падали с {badmatch,{ok,502}}. run-stand-api-tests.sh теперь до 150s ждёт, пока HTTP-фронт API_HOST/ADMIN_API_HOST начнёт отвечать (любой код, кроме 5xx), прежде чем запускать CT. --- scripts/run-stand-api-tests.sh | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) 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=()