- Record previous docker images before deploy - Health check loop: 12 attempts × 5s = 60s total - On failure: warning + previous images printed for manual rollback Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- 5-stage pipeline: lint → test → build → docker-build → deploy - lint: ESLint with npx prisma generate - test: Jest with passWithNoTests, artifact upload - build: NestJS build + dist verification - docker-build: multi-stage Docker build for api + worker - deploy: main-only, docker push + SSH deploy with prisma migrate Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>