회사마다 다르겠지만, 본인은 아래와 같은 방법으로 생각을 해봤다.
- 이슈 등록
- 작업 후 PR 등록 ( 빌드 / 테스트 자동화, 라벨링 자동화 )
- Main에 Merge
- 적절한 시기에 release/0.0.1 같은 브랜치 생성
- release 브랜치에 main 병합 ( 릴리즈 자동화로 버전 관리)
- 적절한 시기에 배포 ( 배포 자동화 )
다른 자동화 workflow는 이미 이전 포스트에 등록을 했으니, 이번엔 릴리즈 자동화를 하고자 한다.
아래는 이번 포스트에 쓰일 Release Drafter action이다.
Release Drafter · Actions · GitHub Marketplace
1. /.github/workflows/release_drafter.yml 생성
name: Auto Labeling
on:
pull_request:
branches:
- main
permissions:
contents: write
pull-requests: write
packages: write
jobs:
update_release_draft:
runs-on: self-hosted
steps:
- uses: release-drafter/release-drafter@v6
with:
config-name: release_drafter_config.yml
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2. /.github/release_drafter_config.yml 생성
name-template: 'v$RESOLVED_VERSION 🌈'
tag-template: 'v$RESOLVED_VERSION'
categories:
- title: '🚀 Features'
labels:
- 'feature'
- 'enhancement'
- title: '🐛 Bug Fixes'
labels:
- 'fix'
- 'bugfix'
- 'bug'
- title: '🧰 Maintenance'
label: 'chore'
change-template: '- $TITLE @$AUTHOR (#$NUMBER)'
change-title-escapes: '\<*_&' # You can add # and @ to disable mentions, and add ` to disable code blocks.
version-resolver:
major:
labels:
- 'major'
minor:
labels:
- 'minor'
patch:
labels:
- 'patch'
default: patch
template: |
## Changes
$CHANGES
참고로 config 파일은 해당 브랜치에 병합이 되어야 인식할 수 있다.
자세한 설명은 위 사이트에서 확인 가능하다.
'DevOps > Git' 카테고리의 다른 글
Git | Github Actions | Auto Labeling workflow ( PR 라벨링 자동화 ) (0) | 2024.05.02 |
---|---|
Git | Github Actions | Auto Labeling with Pull Request (0) | 2024.04.30 |
Git | Github Actions CI/CD 파이프라인 구축 | self_host and container registry (0) | 2024.03.13 |
Git | Github Actions CI/CD 파이프라인 구축 (0) | 2023.09.19 |
Git | 깃허브 commit 되돌리기( reset, revert ) (0) | 2022.11.11 |