커밋은 품질 게이트를 지나 배포된다
NestJS CI/CD는 코드를 자주 합치되, 빌드와 테스트를 통과한 산출물만 레지스트리와 운영 환경으로 보낸다.
CI: 통합 품질 확인
1. Commit / Pull Request작은 변경을 main 후보에 올린다.
2. Install + Build
npm ci, TypeScript build, Docker image build를 수행한다.3. Test gateunit, e2e, lint가 실패하면 배포 산출물을 만들지 않는다.
CD: 배포 가능 상태 유지
4. Image publish통과한 이미지만 registry에 태그와 함께 푸시한다.
5. Deploystaging 또는 production에 배포하고 migration 조건을 확인한다.
6. Observe로그, health check, rollback 신호를 계속 본다.
| 상황 | 파이프라인 결정 | 이유 |
|---|---|---|
| 테스트 실패 | 중단 | 깨진 코드를 이미지로 만들지 않는다. |
| 빌드와 테스트 통과 | publish | 동일한 산출물을 staging과 production에서 재사용한다. |
| 운영 배포 승인 필요 | 대기 | 지속적 제공은 자동 배포가 아니라 배포 가능 상태를 보장한다. |