ci: deploy only p2pwiki-ai service, use container health check
CI/CD / deploy (push) Successful in 32s Details

Deploying all services restarts the main wiki causing brief 404.
Only deploy the AI service and check its container status.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Jeff Emmett 2026-04-01 12:50:01 -07:00
parent 156a5324a2
commit 5798d77a31
1 changed files with 8 additions and 7 deletions

View File

@ -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)"