6단계
수동 CI 실행기와 서비스별 품질 게이트
0회 조회
목차
CI의 핵심은 제품 이름이 아니라 같은 입력에 같은 검증을 반복하고, 실패 증거를 남기는 것입니다. 예시 저장소는 운영 규칙상 GitHub Actions를 CI SSOT로 사용하지 않고, 하나의 Node 실행기와 Windows·macOS·Linux wrapper를 사용합니다.
실행 경계
frontend-ci.mjs
▲
├─ frontend-ci.ps1
├─ frontend-ci.bat
└─ frontend-ci.sh
wrapper는 셸 문법만 번역하고 서비스 선택·명령·종료 코드는 Node SSOT에 위임합니다. 실행할 때는 전체 모노레포를 무작정 돌리지 않고 web, console, worker처럼 대상 서비스를 명시합니다.
node infra/scripts/frontend-ci.mjs web
node infra/scripts/frontend-ci.mjs admin
node infra/scripts/frontend-ci.mjs --help
실제 인자는 현재 infra/scripts와 각 workspace package.json을 확인합니다. 결과에는 테스트·typecheck·lint·build의 성공 여부와 실행 환경을 남깁니다.
품질 게이트의 층
- 빠른 콘텐츠 인벤토리·단위 테스트·타입 검사
- 실제 DB를 쓰는 testcontainer 통합 테스트
- 쓰기 경계를 보호한 브라우저 smoke/E2E
- Git SHA 이미지·readiness·실제 DB 조회 smoke
- 실패 시 대상 서비스만 rollback하고 복구 증거 보존
PR 차단이나 Slack 알림을 외부 CI 서비스에 맡기지 않는 대신, 로컬·운영 실행기의 로그와 release tag가 어느 commit을 검증했는지 분명히 합니다. 나중에 원격 CI를 도입하려면 이 Node SSOT를 호출하고, secret·artifact·branch 보호 정책을 먼저 합의해야 합니다.
직접 해 보기
콘텐츠 파일 하나를 바꾸고 서비스 범위를 명시해 실행합니다. 그 뒤 같은 commit으로 PROD dry-run과 smoke 계획을 확인합니다. 명령이 실패했을 때 마지막 성공 단계와 재실행 방법이 출력되는지 확인하세요.