검증한 artifact 하나를 승인 뒤 그대로 승격한다

PR은 코드를 검증하고 release는 이미 만든 산출물을 환경으로 옮긴다. 배포 단계에서 다시 build하면 검증한 결과와 실제 배포물이 달라지므로 commit과 image digest를 같은 증거 사슬에 둔다.

PR
verify
1 설치npm ci
lockfile 그대로
2 타입 게이트tsc -b
--stopOnBuildErrors
3 실행 검증unit·integration
runtime contract
4 build onceartifact +
content digest
release
promote
1 선택검증한 digest
재사용
2 승인environment rule 통과 뒤 secret 접근
3 배포concurrency로 같은 환경의 동시 배포 제한
4 관측smoke 통과 → 유지
실패 → 이전 digest
승격 단위같은 tag가 아니라 동일한 content를 가리키는 immutable 식별자를 기록한다.image@sha256:…
1타입 경계

typecheck는 정적 graph를 검증한다. env·JSON·DB 상태는 테스트와 runtime guard가 맡는다.

2캐시 경계

cache는 없어도 재생성 가능해야 한다. key에 lockfile·toolchain·tsconfig 변화를 반영한다.

3감사 경계

run URL, commit SHA, artifact digest, 승인자, smoke 결과를 한 배포 기록으로 연결한다.

TypeScript 5.6+ CI: tsc -b는 중간 프로젝트 오류 뒤에도 best-effort build를 계속할 수 있다. 첫 build 오류에서 파이프라인을 멈추려면 --stopOnBuildErrors를 명시한다.