728x90
반응형

회사마다 다르겠지만, 본인은 아래와 같은 방법으로 생각을 해봤다.

  1. 이슈 등록
  2. 작업 후 PR 등록 ( 빌드 / 테스트 자동화, 라벨링 자동화 )
  3. Main에 Merge
  4. 적절한 시기에 release/0.0.1 같은 브랜치 생성
  5. release 브랜치에 main 병합 ( 릴리즈 자동화로 버전 관리)
  6. 적절한 시기에 배포 ( 배포 자동화 )

 

다른 자동화 workflow는 이미 이전 포스트에 등록을 했으니, 이번엔 릴리즈 자동화를 하고자 한다.

아래는 이번 포스트에 쓰일 Release Drafter action이다.

 

Release Drafter · Actions · GitHub Marketplace

 

Release Drafter - GitHub Marketplace

Drafts your next release notes as pull requests are merged into master

github.com

 

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 파일은 해당 브랜치에 병합이 되어야 인식할 수 있다.

자세한 설명은 위 사이트에서 확인 가능하다.

728x90
반응형

+ Recent posts