1. release와 dev를 분리해야 하는 이유
- 안정성 유지: release 브랜치는 배포된 안정적인 코드를 포함한다. 이를 통해 배포 시 문제가 발생할 가능성을 줄인다.
- 병렬 개발: dev 브랜치는 새로운 기능 개발, 버그 수정 등의 작업이 이루어진다. 이를 통해 개발 작업과 배포 작업이 충돌하지 않도록 한다.
- 코드 관리: 분리된 브랜치를 통해 코드 베이스를 체계적으로 관리하고, 여러 개발자들이 동시에 작업할 수 있다.
2. release와 dev를 분리하는 방법
1. 브랜치 생성:
git checkout -b dev
git push origin dev
git checkout -b release
git push origin release
2. 개발 브랜치(dev)에서 작업:
- 새로운 기능이나 버그 수정을 dev 브랜치에서 한다.
- 작업 완료 후 dev 브랜치를 release 브랜치에 병합한다.
3. release를 버전별로 Git에 게시하는 방법
1. 태그 생성 및 푸시:
릴리즈할 준비가 되면 release 브랜치에서 태그를 생성한다.
git checkout release
git tag -a v0.0.01 -m "Release version 0.0.01"
git push origin v0.0.01
2. 버전 번호 관리:
각 릴리즈마다 버전 번호를 업데이트하고 태그를 생성하여 푸시한다.
git tag -a v0.0.01 -m "Release version 0.0.01"
git push origin v0.0.01
이렇게 해주면
다음과 같이 버전별로 게시가 가능해진다.
혹은 아래와 같이 github action을 사용, 자동 tagging이 가능하다.
name: Create Release Branch And Tag
on:
push:
branches:
- main # main branch로 push될 때 아래 action이 실행됩니다.
jobs:
build:
runs-on: ubuntu-latest
steps:
# 깃헙 코드 내려받기
- uses: actions/checkout@v2
# 태그 생성
- name: Bump version and push tag
id: tag_version
uses: mathieudutour/github-tag-action@v5.5 # 가져다 쓸 auto tagging 프로그램
with:
github_token: ${{ secrets.GITHUB_TOKEN }} # secrets.GITHUB_TOKEN 는 자동생성됨
# 릴리즈 생성
- name: Create Release
id: create_release
uses: actions/create-release@v1 # 가져다 쓸 create release 프로그램
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # secrets.GITHUB_TOKEN 는 자동생성됨
with:
tag_name: ${{ steps.tag_version.outputs.new_tag }}
release_name: Release ${{ steps.tag_version.outputs.new_tag }}
body: ${{ steps.tag_version.outputs.changelog }}
'Diary > TIL' 카테고리의 다른 글
2024-04-12) 대규모 시스템 설계 기초 CH1: 단일 서버, db (0) | 2024.05.19 |
---|---|
2024-04-11) CI/CD with github-action (0) | 2024.05.19 |
2024-04-08) 모니터링&테스트와 관련된 의사결정 여러가지 (0) | 2024.05.17 |
2024-04-06) Pinpoint 등록 시도 (0) | 2024.05.15 |
2024-04-05) ngrinder 적용 시도 (0) | 2024.05.14 |