배경
릴리즈 PR(main → release/*)도 일반 기능 PR과 동일한 full CI를 타면서 머지 가능 상태 확인까지 시간이 길다. 특히 api-server의 product/admin 릴리즈 PR은 같은 main HEAD로 열리면 유사한 CI가 중복 실행된다.
문제
- 릴리즈 PR에서도
unit/rule/integration/final-build 전체가 실행된다.
- product 릴리즈에도 admin integration이, admin 릴리즈에도 product integration이 함께 실행된다.
- 릴리즈 PR의 핵심은 신규 기능 검증보다
VERSION, tag, release branch 반영 가능 여부 확인에 가깝다.
목표
서비스 레포지토리 릴리즈 PR 전용 CI를 분리한다.
제안
- 일반 PR(
feature → main)은 기존 full CI 유지
- 릴리즈 PR(
main → release/*)은 경량 CI로 분기
- 릴리즈 CI에서 우선 확인할 항목
- PR 방향 확인:
main → release/*
- 모듈별
VERSION 형식/bump 확인
tag prefix/v{VERSION} 존재 확인
- 대상 모듈 build 검증
- integration test는 대상 모듈만 실행하거나 생략 여부 결정
우선 대상
api-server product: release/product, bottlenote-product-api/VERSION, product/vX.Y.Z
api-server admin: release/admin, bottlenote-admin-api/VERSION, admin/vX.Y.Z
frontend: release, VERSION, frontend/vX.Y.Z
admin-dashboard: release/dashboard, VERSION, dashboard/vX.Y.Z
완료 조건
배경
릴리즈 PR(
main → release/*)도 일반 기능 PR과 동일한 full CI를 타면서 머지 가능 상태 확인까지 시간이 길다. 특히api-server의 product/admin 릴리즈 PR은 같은mainHEAD로 열리면 유사한 CI가 중복 실행된다.문제
unit/rule/integration/final-build전체가 실행된다.VERSION,tag,release branch 반영 가능 여부확인에 가깝다.목표
서비스 레포지토리 릴리즈 PR 전용 CI를 분리한다.
제안
feature → main)은 기존 full CI 유지main → release/*)은 경량 CI로 분기main → release/*VERSION형식/bump 확인tag prefix/v{VERSION}존재 확인우선 대상
api-serverproduct:release/product,bottlenote-product-api/VERSION,product/vX.Y.Zapi-serveradmin:release/admin,bottlenote-admin-api/VERSION,admin/vX.Y.Zfrontend:release,VERSION,frontend/vX.Y.Zadmin-dashboard:release/dashboard,VERSION,dashboard/vX.Y.Z완료 조건
api-serverproduct/admin 릴리즈 전용 CI 설계를 확정한다.