Fix verify jobs to support HTTPS with fallback to HTTP

Health checks now try HTTPS first (with -k for self-signed certs),
then fall back to HTTP. Handles both TLS-enabled and plain HTTP
deployments without failing the pipeline.
This commit is contained in:
Jordan Ramos
2026-06-24 16:46:56 -06:00
parent 15ad2ec4e0
commit c060133aeb

View File

@@ -264,11 +264,17 @@ verify-staging:
- sleep 3 - sleep 3
- | - |
for i in 1 2 3 4 5; do for i in 1 2 3 4 5; do
STATUS=$(curl -s -o /dev/null -w "%{http_code}" http://${STAGING_HOST}:3100/api/health 2>/dev/null || echo "000") STATUS=$(curl -sk -o /dev/null -w "%{http_code}" https://${STAGING_HOST}:3100/api/health 2>/dev/null || echo "000")
if [ "$STATUS" = "200" ]; then if [ "$STATUS" = "200" ]; then
echo "Staging health check passed (attempt $i)" echo "Staging health check passed (attempt $i)"
break break
fi fi
# Fall back to HTTP in case TLS is not enabled
STATUS=$(curl -s -o /dev/null -w "%{http_code}" http://${STAGING_HOST}:3100/api/health 2>/dev/null || echo "000")
if [ "$STATUS" = "200" ]; then
echo "Staging health check passed via HTTP (attempt $i)"
break
fi
echo "Staging not ready (status: $STATUS), retrying... (attempt $i/5)" echo "Staging not ready (status: $STATUS), retrying... (attempt $i/5)"
sleep 3 sleep 3
done done
@@ -277,10 +283,10 @@ verify-staging:
exit 1 exit 1
fi fi
- | - |
COMP_STATUS=$(curl -s -o /dev/null -w "%{http_code}" "http://${STAGING_HOST}:3100/api/compliance/items?page=1&limit=1" || echo "000") COMP_STATUS=$(curl -sk -o /dev/null -w "%{http_code}" "https://${STAGING_HOST}:3100/api/compliance/items?page=1&limit=1" || echo "000")
[ "$COMP_STATUS" != "200" ] && echo "WARN: Compliance items returned $COMP_STATUS" || true [ "$COMP_STATUS" != "200" ] && echo "WARN: Compliance items returned $COMP_STATUS" || true
- | - |
VCL_STATUS=$(curl -s -o /dev/null -w "%{http_code}" "http://${STAGING_HOST}:3100/api/compliance/vcl/stats" || echo "000") VCL_STATUS=$(curl -sk -o /dev/null -w "%{http_code}" "https://${STAGING_HOST}:3100/api/compliance/vcl/stats" || echo "000")
[ "$VCL_STATUS" != "200" ] && echo "WARN: VCL stats returned $VCL_STATUS" || true [ "$VCL_STATUS" != "200" ] && echo "WARN: VCL stats returned $VCL_STATUS" || true
- echo "Staging verification passed." - echo "Staging verification passed."
needs: needs:
@@ -302,11 +308,17 @@ verify-production:
- sleep 3 - sleep 3
- | - |
for i in 1 2 3 4 5 6 7 8 9 10; do for i in 1 2 3 4 5 6 7 8 9 10; do
STATUS=$(curl -s -o /dev/null -w "%{http_code}" http://${PROD_HOST}:3001/api/health 2>/dev/null || echo "000") STATUS=$(curl -sk -o /dev/null -w "%{http_code}" https://${PROD_HOST}:3001/api/health 2>/dev/null || echo "000")
if [ "$STATUS" = "200" ]; then if [ "$STATUS" = "200" ]; then
echo "Production health check passed (attempt $i)" echo "Production health check passed (attempt $i)"
break break
fi fi
# Fall back to HTTP in case TLS is not enabled
STATUS=$(curl -s -o /dev/null -w "%{http_code}" http://${PROD_HOST}:3001/api/health 2>/dev/null || echo "000")
if [ "$STATUS" = "200" ]; then
echo "Production health check passed via HTTP (attempt $i)"
break
fi
echo "Production not ready (status: $STATUS), retrying... (attempt $i/10)" echo "Production not ready (status: $STATUS), retrying... (attempt $i/10)"
sleep 3 sleep 3
done done
@@ -325,10 +337,10 @@ verify-production:
exit 1 exit 1
fi fi
- | - |
COMP_STATUS=$(curl -s -o /dev/null -w "%{http_code}" "http://${PROD_HOST}:3001/api/compliance/items?page=1&limit=1" || echo "000") COMP_STATUS=$(curl -sk -o /dev/null -w "%{http_code}" "https://${PROD_HOST}:3001/api/compliance/items?page=1&limit=1" || echo "000")
[ "$COMP_STATUS" != "200" ] && echo "WARN: Compliance items returned $COMP_STATUS" || true [ "$COMP_STATUS" != "200" ] && echo "WARN: Compliance items returned $COMP_STATUS" || true
- | - |
VCL_STATUS=$(curl -s -o /dev/null -w "%{http_code}" "http://${PROD_HOST}:3001/api/compliance/vcl/stats" || echo "000") VCL_STATUS=$(curl -sk -o /dev/null -w "%{http_code}" "https://${PROD_HOST}:3001/api/compliance/vcl/stats" || echo "000")
[ "$VCL_STATUS" != "200" ] && echo "WARN: VCL stats returned $VCL_STATUS" || true [ "$VCL_STATUS" != "200" ] && echo "WARN: VCL stats returned $VCL_STATUS" || true
- echo "Production verification passed." - echo "Production verification passed."
needs: needs: