GitHubActionsを使ってタグのpushをトリガーとしてリリースノートが自動で作成されるようにする
はじめに
最近個人開発でTabTabTabというタブ管理用のChrome拡張を開発しており、新しいバージョンをリリースする際はGitHubにタグをpushし、リリースノートを自分で作成していた。
毎回この作業をするのが面倒だったのでGitHubActionsを使って自動化することにした。
処理の流れ
処理の全体像は以下のようになる。
- タグをGitHubにpush
- タグのpushをトリガーとしてGitHubActionsのワークフローが走る
- ワークフローの中でリリースノートが作成されるようにする
ワークフローの設定ファイル
以下のyamlファイルを.github/workflows/generate-release-note.yml
として配置した。
name: Generate Release Note
on:
push:
tags:
- '*'
jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Generate release note
uses: softprops/action-gh-release@v1
with:
generate_release_notes: true
以下の箇所でタグのpushをトリガーにワークフローが走るように設定している。
on:
push:
tags:
- '*'
リリースの作成にはsoftprops/action-gh-releaseというActionを利用した。
- name: Generate release note
uses: softprops/action-gh-release@v1
with:
generate_release_notes: true
タグ名やリリース名などを設定することはできるが、今回はデフォルトで対応可能だったので特に指定はしていない。ただ、リリースノートが作成されるようにgenerate_release_notes
をtrue
に設定している。
その他の設定についてはREADMEを参照されたい。
生成されたリリースノート
上記の設定によって作成されたリリースノートが以下。github-actions
によって生成されている。
ちなみに🎉 Features
のようなリリースノートの構造化は.github/release.yml
によって制御している。
この辺りの話については以下の記事にまとめてあるので興味があれば読んでみてほしい。
👉 GitHubリポジトリ内のリリースノートを対応内容ごとにカテゴライズしてイイ感じにする
おわり
これでタグをpushするだけで自動でリリースノートが自動生成されるようになり、リリース時の面倒が一つ減った。
GitHubActionsはこういった雑務を簡単に解決してくれるのでかなり重宝している。