Skip to content

자동 버전 태깅

작성: 0chil
  • main 브랜치에 커밋이 푸시되면 GitHub Actions(.github/workflows/tagging.yml)가 최신 태그를 기준으로 새 버전을 생성해 푸시한다.
  • 기존 태그가 없으면 v0.0.0을 시작점으로 삼고, 이미 HEAD가 태깅돼 있으면 스킵한다.

버전 상승 규칙 (Angular Conventional Commits)

Section titled “버전 상승 규칙 (Angular Conventional Commits)”
  • !가 타입/스코프 뒤에 있으면 (예: feat!:, fix(scope)!:) 메이저.
  • 커밋 본문에 BREAKING CHANGE: 또는 BREAKING-CHANGE:가 있으면 메이저.
  • feat:가 있으면 마이너.
  • 그 외(fix:, chore:, ci:, cd: 등)는 패치.
  • 여러 커밋이 있을 때 우선순위: ! 또는 BREAKING CHANGE > feat > 기본 패치.
  1. 모든 태그를 가져와 v?X.Y.Z 패턴만 후보로 정렬한다.
  2. 마지막 태그부터 HEAD까지(없으면 전체 히스토리) 커밋을 스캔해 상승 폭을 결정한다.
  3. 계산된 버전으로 태그를 만들고 origin에 푸시한다.

Actions > Commit tagging 워크플로우 실행 상세에서 Show bump decision 스텝을 보면:

  • Log range: 스캔한 커밋 범위
  • Bump: 결정된 상승 폭 (major/minor/patch)
  • Reason: 결정 근거
  • Next tag: 생성될 태그
  • 태그 포맷은 vX.Y.Z가 권장된다(접두어 없는 X.Y.Z도 읽지만 새 태그는 v로 생성).
  • 커밋 메시지는 Angular 컨벤션을 따라야 의도한 버전 상승이 적용된다.