Photoruction工事中!

Photoructionの開発ブログです!

リリースノートの作成で楽をする

はじめに

こんにちは、Photoructionでモバイルチームのテックリードをしている數田です。

Photoruction Advent Calendar 2022の25日目の記事になります。

現在フォトラクションのモバイルアプリは基本的に毎週水曜日にリリースしています、リリース回数を増やすと、手動でリリースノートを作成していると漏れが発生する可能性が高くなります。

リリースノートを自動で作成する手段を検討すると、GitHubAutomatically generated release notesが追加されたので利用するようにしました。

GitHub ReleaseページでGenerate releasenotesを実行すると以下のようになります。

## What's Changed
* [JIRA-1] 新機能1 by {GitHub User} in {Github repo}/pull/101
* [JIRA-2] 新機能2 by {GitHub User} in {Github repo}/pull/102
* [JIRA-3] バグ改修1 by {GitHub User} in {Github repo}/pull/103

## New Contributors
* {GitHub User} made their first contribution in {Github repo}/pull/1

**Full Changelog**: {GitHub repo}/commits/1.0.1

What's ChangedにマージされたPRが全て出るので、変更の内容を分類したくなります。

**Automatically generated release notes ではPull Requestにラベルをつけると分類できるようになります。

Pull Requestに自動でラベルをつける方法

リリースノートに機能追加、バグ改修、リファクタリングが分類して書いてあると影響範囲がわかりやすそうです。

Pull Requestに手動でラベルを付与する運用にすると漏れが発生するので、自動で付与する方法を考えます。

GitHub Actionsの PR Labeler を利用するとブランチ名を元にPRのラベルを自動で付与することができます。ブランチのプレフィックスにそれぞれがわかるように設定します。

Feature: ['feature/*']
bug: ['bugs/*']
refactor: ['refactor/*']

課題管理システム

リリースノートから課題管理のチケットにリンクが貼られていると便利ですがGithubのIssues以外のJIRAなどを利用していると、リリースノートからに課題のURLを書くのも面倒です。GitHubAutolink referencesでJIRAなどの設定をすることによって、JIRA-1と書くだけでPull RequestやIssueなどでリンクが自動で設定されます。

リリースノートの設定

リリースノートでPull Requestを分類する設定をを.github/release.ymlに追加します。

changelog:
  categories:
    - title: 新機能 
      labels:
        - Feature
    - title: 不具合修正
      labels:
        - bug
    - title: リファクタリング
      labels:
        - refactor
    - title: Other Changes
      labels:
        - "*"

GitHub ReleaseページでGenerate releasenotesを実行すると以下のようになります。

株式会社フォトラクションでは一緒に働く仲間を募集しています