Open4
リポジトリのタグとリリースの管理について
これは何?
リポジトリのタグとリリースを GitHub でいい感じに管理したく、色々調べたことをまとめるスクラップ
目次
- 概要
- リリースを作る意味
- 自動化
概要
タグ
-
git tag -a v1.0.0 -m 'v1.0.0'
という感じで特定のコミットにタグをつければ GitHub 上で管理できる - リリースを作るのに必須
リリース
- git の tag に基づいて作ることができ、その tag で示した時点のリポジトリの内容
- 要はその時点でのリリース内容
リリース を作る意味
タグさえ付ければ特定のバージョンを後から確認できるし、バージョン同士の比較もできるし、リリースいらないのでは?と思ったのでリリースを作る意味を色々調べてみた。
リリースノートを書ける
リリースを作る際にその内容を markdown で書いておくことができる。
圧縮されたソースコードがもともと添付されているが、任意のファイルも添付できる。
タグだけの場合は git tag
の -m
オプションでコメントを書く程度のことしかできない。
あとリリースの中でメンションもできる。けど有意義な使い方は思い浮かばない。
新しいリリースがあったときに通知することができる
新しいリリースがあったら GitHub が通知してくれるらしい。
ただこれはオープンソースのプロジェクトの場合に contributor 側にはメリットになりそうだが、Private なリポジトリで自分たちが開発している場合にはあんまりメリットなさそう。
自動化
タグを付けて本番環境にデプロイするフローを自動化したい
思考メモ
- 特定のブランチ(
master
とかmain
)に次のリリース内容をまとめた PR を merge したらそのコミットに次のバージョンのタグを付けたい- タグを打つこと自体は GitHub Actions で簡単にできそう
- バージョンを上げる部分の自動化
- そのリリースが major なのか minor なのか patch なのかは人が判断
- semantic-release で自動化できそうだけど今回はパス
- GitHub Actions の環境変数 でうまいことできないかな
- そのリリースが major なのか minor なのか patch なのかは人が判断
参考: semantic-release
semantic-release というツールを使うと、コミットメッセージを解析してバージョンを自動的に上げながらタグを付ける事もできるらしい。
ただ、チーム内でコミットメッセージのルールをちゃんと守らないと意味がないので運用が大変そう。
個人開発とかで使ってみたい。