ちゃんとしたリリースがないプロジェクトでも GitHub のリリースと Git タグを活用する
ちゃんとしたリリースがないプロジェクトでも GitHub のリリースと Git タグを活用する
はじめに
自分が関わっているほぼすべてのプロジェクトは、GitHub でソースコードを管理しています。
直近のプロジェクトでは、まとめてリリースするようなことはなく、小さいプルリクエストに分けてデフォルトブランチにガンガンマージしています。
どのタイミングでリリースと言って良いのかわからないプロジェクトでも、GitHub のリリースと Git タグを活用できているので紹介します。
リリースとは?
リリースは、パッケージ化して、より多くのユーザがダウンロードして使用できるようにすることができるデプロイ可能なソフトウェアのイテレーションです。
自分のプロジェクトでは、パッケージ化などは関係ないので、イテレーションのためにリリースを行います。
GitHub のリリースと Git タグの利用方法
隔週でリリースを作成し、下記内容をチームメンバーで一緒に確認しています。
- 2週間の間にどれくらいのプルリクエストをマージできたか
 - どういった対応が多かったのか
 - 誰が作業していたのか
 - 予定通りに進んでいるのか
 
設定
リリースノートを自動で埋めたいので、.github/release.yml を作成します。
analysis, infrastructure, improvement, bug の label を
プルリクエストに付与することでリリースノートを良い感じに埋めるように設定しました。
.github/release.yml
changelog:
  categories:
    - title: Analysis(調査/分析)
      labels:
        - analysis
    - title: Infrastructure(インフラ周り)
      labels:
        - infrastructure
    - title: Improvement(改善/リファクタリング)
      labels:
        - improvement
    - title: Bug fixes
      labels:
        - bug
    - title: Other Changes
      labels:
        - "*"
リリース作成の流れ
GitHub のプルリクエストに label を付与
 .github/release.yml の labels で指定した label をプルリクエストに付与します。

リリース作成
https://github.com/<OWNER_NAME>/<REPOSITORY_NAME>/releases で、Draft a new release をクリック。

Choose a tag をクリックしてタグを選択。

Generate release notes をクリック。

前回のリリース以降に、label を付与したプルリクエストがマージされていたら、下記のように自動で埋めてくれます。

<!-- Release notes generated using configuration in .github/release.yml at main -->
## What's Changed
### Analysis(調査/分析)
* xxx の分析 by @hoge in https://github.com/OWNER_NAME/REPOSITOR_NAME/pull/1234
### Improvement(改善/リファクタリング)
* yyy のリファクタリング by @fuga in https://github.com/OWNER_NAME/REPOSITOR_NAME/pull/1235
### Other Changes
* zzz の対応 by @hoge in https://github.com/OWNER_NAME/REPOSITOR_NAME/pull/1236
**Full Changelog**: https://github.com/OWNER_NAME/REPOSITOR_NAME/compare/v0.0.99...v0.0.100
Publish release をクリックで、リリースを作成。
今後
チームでやってきたことを振り返ることができて良い感じなので、引き続き活用していきたいです。
