diff --git a/.github/workflows/nightly-build.yml b/.github/workflows/nightly-build.yml index cfac47c3..6bde218f 100644 --- a/.github/workflows/nightly-build.yml +++ b/.github/workflows/nightly-build.yml @@ -394,14 +394,28 @@ jobs: -p 8080:8080 \ "${IMAGE_REF}" - # Wait for container to start - sleep 10 + # Wait for container to become healthy + echo "⏳ Waiting for Charon to be healthy..." + MAX_ATTEMPTS=30 + ATTEMPT=0 + while [[ ${ATTEMPT} -lt ${MAX_ATTEMPTS} ]]; do + ATTEMPT=$((ATTEMPT + 1)) + echo "Attempt ${ATTEMPT}/${MAX_ATTEMPTS}..." + if docker exec charon-nightly wget -qO- http://127.0.0.1:8080/health > /dev/null 2>&1; then + echo "✅ Charon is healthy!" + docker exec charon-nightly wget -qO- http://127.0.0.1:8080/health + break + fi + sleep 2 + done - # Check container is running - docker ps | grep charon-nightly - - # Basic health check - curl -f http://localhost:8080/health || exit 1 + if [[ ${ATTEMPT} -ge ${MAX_ATTEMPTS} ]]; then + echo "❌ Health check failed after ${MAX_ATTEMPTS} attempts" + docker logs charon-nightly + docker stop charon-nightly + docker rm charon-nightly + exit 1 + fi # Cleanup docker stop charon-nightly