diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index ecaac2e..9870d07 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -46,22 +46,23 @@ jobs: cat .last-deployed-tag 2>/dev/null > .rollback-tag || true echo '${{ env.IMAGE_TAG }}' > .last-deployed-tag docker pull ${{ env.IMAGE }}:${{ env.IMAGE_TAG }} - IMAGE_TAG=${{ env.IMAGE_TAG }} docker compose up -d --no-build + IMAGE_TAG=${{ env.IMAGE_TAG }} docker compose up -d --no-build p2pwiki-ai " - name: Smoke test run: | sleep 15 - HTTP_CODE=$(ssh -o StrictHostKeyChecking=no -i ~/.ssh/deploy_key root@${{ secrets.DEPLOY_HOST }} \ - "curl -sSL -o /dev/null -w '%{http_code}' --max-time 30 https://p2pwiki.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" + STATUS=$(ssh -o StrictHostKeyChecking=no -i ~/.ssh/deploy_key root@${{ secrets.DEPLOY_HOST }} \ + "docker ps --filter name=p2pwiki-ai --filter status=running --format '{{.Status}}' | head -1") + if echo "$STATUS" | grep -q "Up"; then + echo "Smoke test passed (p2pwiki-ai: $STATUS)" + else + echo "Smoke test failed (p2pwiki-ai not running) — rolling back" ROLLBACK_TAG=$(ssh -o StrictHostKeyChecking=no -i ~/.ssh/deploy_key root@${{ secrets.DEPLOY_HOST }} "cat /opt/apps/p2pwiki-content/.rollback-tag 2>/dev/null") if [ -n "$ROLLBACK_TAG" ]; then ssh -o StrictHostKeyChecking=no -i ~/.ssh/deploy_key root@${{ secrets.DEPLOY_HOST }} \ - "cd /opt/apps/p2pwiki-content && IMAGE_TAG=$ROLLBACK_TAG docker compose up -d --no-build" + "cd /opt/apps/p2pwiki-content && IMAGE_TAG=$ROLLBACK_TAG docker compose up -d --no-build p2pwiki-ai" echo "Rolled back to $ROLLBACK_TAG" fi exit 1 fi - echo "Smoke test passed (HTTP $HTTP_CODE)"