【入門編】GitHub Actionsでリリースノートを自動生成!タグ付けから変更履歴の要約まで – バージョン管理・CI/CD活用バイブル

エンジニアの皆さん、こんにちは。現場で泥臭くコードを書き、深夜にデプロイで冷や汗をかいた経験がある方なら一度は思うはずです。

「リリースノートを書くの、面倒くさすぎないか?」

機能追加やバグ修正に追われる中、最後に残る「変更履歴の整理」という事務作業。これを放置するとチームの透明性は下がり、継続的な改善の文化も薄れます。

今日は、GitHub Actionsを使い、「タグを打つだけで、プルリクエストの履歴から完璧なリリースノートを自動生成する」究極の自動化フローを構築しましょう。これをマスターすれば、あなたはリリース作業から解放され、より本質的な開発に集中できるようになります。

—

1. なぜ「手動のリリースノート」がボトルネックになるのか

手動の運用には3つの悪魔が潜んでいます。

  • 記憶の欠落: 誰が何をマージしたか、数週間後には忘れています。
  • 表現の不一致: 書く人によって粒度がバラバラになり、ユーザーにとって読みづらい。
  • 心理的障壁: 面倒だからとリリースを後回しにし、デプロイサイクルが遅延する。

GitHub Actionsなら、プルリクエスト(PR)のラベルやタイトルを正規化するだけで、機械が正確に、そして美しくドキュメントを生成してくれます。

—

2. 魔法のツール:`release-drafter`

今回使うのは、GitHub公式も推奨する「Release Drafter」という強力なツールです。これは「まだリリースされていない変更」を監視し、リリース作成時に自動でドラフトを作成してくれる優れものです。

【Step 1】設定ファイルの作成

リポジトリのルートに `.github/release-drafter.yml` を作成してください。これが「どういう形式でリリースノートを書くか」の設計図になります。

.github/release-drafter.yml
name-template: v$NEXT_PATCH_VERSION
tag-template: v$NEXT_PATCH_VERSION
categories:

  • title: 🚀 新機能 (New Features)

labels:

  • feature
  • title: 🐛 バグ修正 (Bug Fixes)

labels:

  • fix

change-template: ‘- $TITLE @$AUTHOR (#$NUMBER)’ # リスト形式でPR情報を見やすく
version-resolver:
major:
labels:

  • major

minor:
labels:

  • enhancement

patch:
labels:

  • fix

【Step 2】GitHub Actionsのワークフロー定義

次に、ワークフローファイル `.github/workflows/release-drafter.yml` を作成します。

.github/workflows/release-drafter.yml
name: Release Drafter

on:
push:
branches:

  • main # mainブランチにマージされたらトリガー

pull_request:
types: [opened, reopened, synchronize, labeled]

jobs:
update_release_draft:
runs-on: ubuntu-latest
permissions:
contents: write # リリース作成に必要な権限
pull-requests: read
steps:

  • uses: release-drafter/release-drafter@v6

env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

—

3. 精度を最大化する「運用ルール」の極意

この自動化を成功させる唯一の鍵は、「PRのラベル付け」です。

  • ラベルの義務化: PRを作成する際、必ず `feature`(新機能)や `fix`(バグ修正)のラベルを貼るルールをチームで徹底してください。
  • PRタイトルの活用: 複雑な説明は不要です。PRのタイトルそのものがリリースノートの項目になります。「分かりやすいタイトル」を書くことが、そのまま優れたユーザー向けドキュメントになります。

—

4. HelloWorld的な動作確認

設定が完了したら、以下の手順でテストしてみましょう。

1. `feature` ラベルをつけたテスト用プルリクエストを作成し、`main` にマージする。
2. GitHubの「Releases」ページを開く。
3. 「Draft a new release」のボタンを押すと、自動的に「🚀 新機能 (New Features)」という見出しと、先ほどのPRタイトルが埋め込まれたノートが生成されているはずです。

もし生成されていなければ、`permissions` 設定が正しいか、ブランチ名が `main`(または `master`)と一致しているかを確認してください。

—

最後に:自動化がもたらす「文化」

リリースノートを自動化するということは、単にタイピングを減らすことではありません。「開発のプロセスを、外から見える形にする」という文化を作ることです。

「今日はどんな進捗があったか?」を、GitHub上のラベル管理という小さなアクションで可視化する。それが蓄積されることで、チームの信頼関係はより強固になります。

まずは今日、あなたのプロジェクトにこの `release-drafter` を導入してみてください。次にリリースボタンを押すとき、そのあまりの快適さに、あなたはきっと驚くはずです。

質問があればいつでも聞いてください。あなたのCI/CDジャーニーを、全力でサポートします!

タイトルとURLをコピーしました