diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 31ba69d..53a66fb 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -51,15 +51,16 @@ jobs: - name: Smoke test run: | - sleep 10 - HTTP_CODE=$(curl -sS -o /dev/null -w "%{http_code}" --max-time 15 https://conviction.jeffemmett.com/ 2>/dev/null || echo "000") - if [ "$HTTP_CODE" != "200" ]; then - echo "Smoke test failed — rolling back" + sleep 15 + HTTP_CODE=$(curl -sSL -o /dev/null -w "%{http_code}" --max-time 30 https://conviction.jeffemmett.com/ 2>/dev/null || echo "000") + if [ "$HTTP_CODE" -lt 200 ] || [ "$HTTP_CODE" -ge 400 ]; then + echo "Smoke test failed (HTTP $HTTP_CODE) — rolling back" ROLLBACK_TAG=$(ssh -o StrictHostKeyChecking=no -i ~/.ssh/deploy_key root@${{ secrets.DEPLOY_HOST }} "cat /opt/websites/conviction-voting-demo/.rollback-tag 2>/dev/null") if [ -n "$ROLLBACK_TAG" ]; then ssh -o StrictHostKeyChecking=no -i ~/.ssh/deploy_key root@${{ secrets.DEPLOY_HOST }} \ "cd /opt/websites/conviction-voting-demo && IMAGE_TAG=$ROLLBACK_TAG docker compose up -d --no-build" + echo "Rolled back to $ROLLBACK_TAG" fi exit 1 fi - echo "Smoke test passed" + echo "Smoke test passed (HTTP $HTTP_CODE)"