Fastlane 자동 배포에서 릴리즈 노트를 자동 생성하는 방법은?

_____
Q1: Fastlane에서 릴리즈 노트를 자동 생성하는 기본적인 방법은 무엇인가요?
A1: Fastlane 내장 액션 중 `changelog_from_git_commits` 또는 `get_changelog` 액션을 사용하여 Git 커밋 메시지를 기반으로 자동으로 릴리즈 노트를 생성할 수 있습니다. 이 액션들은 지정한 Git 태그 범위 또는 브랜치 커밋 로그를 읽어 릴리즈 노트를 만들어 줍니다.

---

Q2: `changelog_from_git_commits` 액션 사용법은 어떻게 되나요?
A2: `Fastfile`에서 `changelog_from_git_commits` 액션을 호출할 때 다음과 같이 옵션을 지정할 수 있습니다.

```ruby
release_notes = changelog_from_git_commits(
between: ['v1.0.0', 'HEAD'], 태그 구간 설정
include_merges: false, merge 커밋 포함여부
prepend: "- " 각 커밋 앞에 붙일 기호
)
```

이렇게 생성된 `release_notes` 문자열을 Google Play나 App Store Connect 업로드 시 `release_notes` 파라미터에 전달하면 됩니다.

---

Q3: 릴리즈 노트 포맷이나 커밋 메시지 형식을 커스터마이징 할 수 있나요?
A3: 네, `changelog_from_git_commits`는 각 커밋 로그의 포맷팅 블록(`pretty_print`)을 제공하며, 이를 통해 메시지 앞에 이모지 추가, 제목만 추출하기, 특정 형식(예: Conventional Commits)으로 필터링하는 기능을 구현할 수 있습니다. 직접 Ruby 코드를 사용해 변형하거나, 별도 스크립트를 호출해 커밋 로그를 가공하는 방법도 있습니다.

---

Q4: Google Play 혹은 App Store Connect에 릴리즈 노트를 자동으로 올리려면 어떻게 하나요?
A4:
- Google Play : Fastlane `supply` 액션에서 `release_notes` 옵션에 자동 생성한 노트를 넘겨주면 됩니다.
- App Store Connect : `pilot` 또는 `deliver` 액션의 `release_notes` 옵션에 자동 생성 노트를 전달하면 됩니다.

예:
```ruby
supply(
track: 'production',
release_notes: {
'en-US' => release_notes
}
)
```

---

Q5: 릴리즈 노트를 자동 생성 시 주의할 점은 무엇인가요?
A5:
- 커밋 메시지 규칙을 사전에 정해 일관성 있게 관리해야 노트 품질 유지가 용이합니다.
- 머지 커밋이나 불필요한 커밋을 제외하는 필터링이 필요할 수 있습니다.
- 복잡한 릴리즈 노트 형식이 필요하면 추가 스크립트나 커스텀 액션 개발을 고려해야 합니다.

---

Q6: 더 고급 자동화가 가능한 방법은?
A6:
- CI/CD 서버에서 태그 생성 시 자동으로 Fastlane `changelog_from_git_commits` 실행.
- GitHub Actions, Jenkins 등과 연동해 PR 제목, 이슈 번호 등을 동적으로 추출하여 노트 생성.
- 외부 서비스(API)와 연동해 릴리즈 노트 작성 보조.

---

요약하면, Fastlane에서 `changelog_from_git_commits` 액션을 활용해 커밋 로그 기반으로 릴리즈 노트를 자동 생성하고, 이를 `supply`, `deliver` 등의 액션에 넘겨 자동 배포 파이프라인에 통합하는 방식이 가장 대표적이고 효과적입니다.
Fastlane을 사용하여 자동 배포 시 릴리즈 노트를 자동 생성하는 방법에 대해 설명하겠습니다.

Fastlane은 iOS와 Android 앱의 배포를 자동화할 수 있는 도구로, 노트 생성 기능을 통해 각 배포의 사용자에게 중요한 변경 사항을 알릴 수 있습니다.

1. Fastlane 설치 Fastlane이 설치되어 있지 않은 경우, 먼저 설치해야 합니다.

터미널에서 다음 명령어를 실행합니다.

```bash gem install fastlane ```

2. Fastlane 설정 프로젝트 디렉토리에서 Fastlane을 초기화합니다.

```bash fastlane init ``` 이 명령는 Fastlane의 기본 구조를 생성하고 `Fastfile`을 생성합니다.

이를 통해 배포 작업을 구성할 수 있습니다.



3. 릴리즈 노트 자동 생성 Fastlane에서는 여러 방법으로 릴리즈 노트를 자동 생성할 수 있습니다.

가장 많이 사용되는 방법 중 하나는 `changelog` 혹은 `git` 커밋 메시지를 기반으로 노트를 생성하는 것입니다.

A. `changelog`를 이용한 방법 1. `fastlane`의 `changelog_from_git_commits` 액션을 사용하여 Git 커밋 메시지를 기반으로 릴리즈 노트를 자동 생성합니다.

```ruby lane :release do Git에서 커밋 메시지를 기반으로 릴리즈 노트 생성 release_notes = changelog_from_git_commits App Store에 배포할 때 이 노트를 사용 upload_to_app_store( release_notes: release_notes, ... ) end ``` B. 커스텀 릴리즈 노트 생성 직접 정의한 릴리즈 노트를 사용하려면, `release_notes` 매개변수에 직접 내용을 입력할 수 있습니다: ```ruby lane :release do release_notes = "새로운 기능: 사용자 인터페이스 개선\n버그 수정: 앱 충돌 문제 해결" upload_to_app_store( release_notes: release_notes, ... ) end ```

4. Fastlane 실행 릴리즈 노트를 자동 생성하고 배포하는 lane을 작성한 후, 해당 lane을 실행하면 됩니다.

```bash fastlane release ```

5. 일반적인 주의사항 - Git 커밋 메시지를 기반으로 노트를 생성하려면, 해당 프로젝트에서 유의미한 커밋 메시지를 작성하는 것이 중요합니다.

- CI/CD 파이프라인과 통합하면 혜택을 극대화할 수 있습니다.

예를 들어, 각 빌드 후 자동으로 릴리즈를 생성하는 방법을 활용할 수 있습니다.

이렇게 Fastlane을 이용해 릴리즈 노트를 자동으로 생성함으로써 생산성을 높이고, 사용자에게 중요한 변화를 신속하게 전달할 수 있습니다.

작성자: 최재호 [비회원] | 작성일자: 1년 전 2025-04-15 23:41:14
조회수: 190 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.