GitHub Action을 활용한 자동 버전 관리 및 변경 로그 생성

발행: (2026년 5월 24일 AM 06:01 GMT+9)
4 분 소요
원문: Dev.to

출처: Dev.to

자동 버전 관리와 changelog 생성은 오픈소스와 SaaS 팀에서 복잡한 릴리즈 노트와 수동 태깅을 피하기 위해 실제 프로덕션에서 많이 사용하는 패턴입니다.
다음과 같은 요소를 사용해 깔끔한 시스템을 구축합니다:

🧠 Conventional commits (커밋 메시지 규칙)
🤖 Semantic versioning 자동화
📜 자동 생성 CHANGELOG
🚀 GitHub Actions 워크플로


📦 1. 필수 도구 설치 (표준 접근법)

우리는 다음을 사용할 것입니다:

👉 semantic-release (업계 표준)

npm install --save-dev semantic-release @semantic-release/changelog @semantic-release/git @semantic-release/github

Your commits MUST follow this format:

Fix (패치 버전 증가)

fix: resolve navbar bug on mobile

또는

BREAKING CHANGE: remove old auth system

.releaserc.json

{
  // 설정 내용은 여기서 정의합니다.
}

📜 4. CHANGELOG 파일 만들기

touch CHANGELOG.md

Start empty:

여기에 모든 주요 변경 사항이 기록됩니다.

🚀 5. GitHub Actions 워크플로 (자동 버전 + CHANGELOG)

📁 .github/workflows/release.yml

name: Auto Version & Changelog

on:
  push:
    branches:
      - main

jobs:
  release:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Setup Node
        uses: actions/setup-node@v4
        with:
          node-version: 20

      - name: Install dependencies
        run: npm install

      - name: Run semantic release
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: npx semantic-release

메인 브랜치에 푸시하면:

  • 커밋을 분석
  • 버전 증가 결정:
    • fix → 1.0.1
    • feat → 1.1.0
    • breaking → 2.0.0
  • changelog 생성
  • Git 태그 생성
  • GitHub Release 생성
  • CHANGELOG.md 업데이트

📜 7. 자동 생성된 changelog 예시

- 사용자 인증 시스템 추가
- 대시보드 분석 추가
- 모바일에서 네비게이션 바 정렬 수정
- API 타임아웃 문제 수정

🏷️ 8. GitHub Release 예시

GitHub이 자동으로 생성합니다:

Features:
- 사용자 인증 시스템
- 분석 대시보드
Fixes:
- 모바일 네비게이션 바 버그

🔐 9. 필요한 GitHub Secrets

다음이 존재하는지 확인하세요:

추가 설정은 필요하지 않습니다.


🧪 10. 실제 워크플로 동작

개발자 흐름:

git commit -m "feat: add dashboard UI"
git push origin main

커밋 유형 감지 (feat)
버전 증가 → 마이너 업데이트
CHANGELOG.md 업데이트
Git 태그 생성 (v1.3.0)
GitHub Release 배포
run: npm publish

🟡 Slack 릴리즈 알림

name: Notify Slack
run: curl -X POST $SLACK_WEBHOOK

🔵 다중 브랜치 릴리즈

{
  // 다중 브랜치 설정 예시
}

🟣 CHANGELOG 형식 커스터마이징

다음과 같이 커밋을 그룹화할 수 있습니다:

  • Features (기능)
  • Fixes (버그 수정)
  • Performance (성능 개선)
  • Breaking changes (파괴적 변경)

⚠️ 12. 흔히 하는 실수

❌ Conventional commits 사용 안 함

→ 버전 관리가 정상적으로 동작하지 않음

❌ 지저분한 커밋 메시지 푸시

fix stuff
update

→ 릴리즈 히스토리가 깨짐


🚀

0 조회
Back to Blog

관련 글

더 보기 »

내 스킬

프로젝트를 위한 AI 지시문을 만들고, 설치하고, 관리하세요 — 코딩이 필요 없습니다. CREATE 이름을 정하고, 카테고리를 선택하고, 원하는 것을 설명하세요 — 마법사가 자동으로 구성합니다.