MinVer 란?
Git Tag 를 이용해 프로젝트의 Version 을 관리하기 위한 Minimal .NET 패키지
CLI 도구도 지원
요구사항
설치 도구
- .NET SDK 6.0 이상
- Git
빠른 시작
- 프로젝트에 MinVer 패키지 설치
- 프로젝트 빌드
프로젝트는 Commit 기록에 있는 최신 태그에 따라 버전 자동 지정
사용법
pre-release, RTM(Release to Manufacturing), Patch 등 소프트웨어 버전을 릴리즈하려는 경우 유효한 SemVer 2.x 버전의 태그를 릴리즈하려는 커밋에 생성하기만 하면 됩니다.
예를 들어
git tag 1.2.3
git push --tags
해당 태그를 사용해 커밋에서 소프트웨어를 빌드하면 MinVer는 해당 버전을 어셈블리와 패키지에 적용합니다.
이후 프로젝트를 빌드하여 Nuget Package 등을 만들게 되면 태그에서 계산된 버전이 자동으로 적용됩니다. (csproj 파일 내에 등의 태그가 없어도 됨)
동작 원리
현재 커밋에 버전 태그가 있는 경우:
버전이 태그에 지정된 그대로 사용됨
현재 커밋에 버전 태그가 없는 경우:
- 커밋을 검색해 버전 태그가 있는 커밋이 발견된 경우:
- 발견된 태그의 버전이 시험판(ex
0.0.1-alpha.2
)인 경우:- 높이(Height)가 증가된 버전이 사용됩니다.(
0.0.1-alpha.2
->0.0.1-alpha.3
)
- 높이(Height)가 증가된 버전이 사용됩니다.(
- 발견된 태그의 버전이 RTM(ex
0.0.1
)인 경우:- 패치 버전이 자동으로 증가합니다.
- 기본 시험판 식별자가 추가됩니다. 기본 식별자는
alpha.0
이지만 사용자 정의 할 수 있습니다. - 예를 들어 최신 버전 태그가
0.0.1
이면 현재 버전은0.0.2-alpha.0
입니다
- 발견된 태그의 버전이 시험판(ex
- 버전 태그가 있는 커밋이 발견되지 않은 경우
- 높이가 추가된 기본 버전으로
0.0.0-alpha.0
이 사용됩니다.
- 높이가 추가된 기본 버전으로
예시 커밋 그래프
gitGraph
commit id: "{1} v0.0.1" tag: "0.0.1"
branch dev
commit id: "{2} v0.0.1"
commit id: "{3} v0.0.2-preview.1"
commit id: "{4} v0.0.2-preview.2"
commit id: "{5} v0.0.4" tag: "0.0.4"
checkout main
merge dev id: "{6} 0.0.4"
commit id: "{7} v0.0.5-preview.1"
'DevOps' 카테고리의 다른 글
[EC2+S3] NPM 서버 Verdaccio 컨테이너로 호스팅하기 (0) | 2024.02.26 |
---|---|
GitLab for Slack App 연동하기(Self-Managed GitLab 16.2 이상) (0) | 2023.09.09 |
Visual Studio 원격 서버 프로세스 디버깅 (0) | 2022.03.29 |
Jenkins - Publish Over FTP 모든 파일 및 하위 폴더 전송 방법 (0) | 2022.03.03 |