Open4

リポジトリのタグとリリースの管理について

Kento SasakiKento Sasaki

これは何?

リポジトリのタグとリリースを GitHub でいい感じに管理したく、色々調べたことをまとめるスクラップ

目次

  • 概要
  • リリースを作る意味
  • 自動化
Kento SasakiKento Sasaki

概要

タグ

  • git tag -a v1.0.0 -m 'v1.0.0' という感じで特定のコミットにタグをつければ GitHub 上で管理できる
  • リリースを作るのに必須

リリース

  • git の tag に基づいて作ることができ、その tag で示した時点のリポジトリの内容
  • 要はその時点でのリリース内容
Kento SasakiKento Sasaki

リリース を作る意味

タグさえ付ければ特定のバージョンを後から確認できるし、バージョン同士の比較もできるし、リリースいらないのでは?と思ったのでリリースを作る意味を色々調べてみた。

リリースノートを書ける

リリースを作る際にその内容を markdown で書いておくことができる。
圧縮されたソースコードがもともと添付されているが、任意のファイルも添付できる。
タグだけの場合は git tag-m オプションでコメントを書く程度のことしかできない。
あとリリースの中でメンションもできる。けど有意義な使い方は思い浮かばない。
Image from Gyazo

新しいリリースがあったときに通知することができる

新しいリリースがあったら GitHub が通知してくれるらしい。
ただこれはオープンソースのプロジェクトの場合に contributor 側にはメリットになりそうだが、Private なリポジトリで自分たちが開発している場合にはあんまりメリットなさそう。

Kento SasakiKento Sasaki

自動化

タグを付けて本番環境にデプロイするフローを自動化したい

思考メモ

  • 特定のブランチ(master とか main)に次のリリース内容をまとめた PR を merge したらそのコミットに次のバージョンのタグを付けたい
    • タグを打つこと自体は GitHub Actions で簡単にできそう
  • バージョンを上げる部分の自動化

参考: semantic-release

semantic-release というツールを使うと、コミットメッセージを解析してバージョンを自動的に上げながらタグを付ける事もできるらしい。
https://dev.classmethod.jp/articles/github-actions-semantic-release-sample/#toc-6

ただ、チーム内でコミットメッセージのルールをちゃんと守らないと意味がないので運用が大変そう。
個人開発とかで使ってみたい。