リリース処理を自動化するスキル。developブランチからリリースブランチを作成し、mainへマージしてタグを付与してリモートにプッシュする。「リリースする」「リリース処理」「バージョンをリリース」「タグを打つ」「本番にリリース」などのフレーズが出たときは必ずこのスキルを使う。
以下の手順でリリース処理を実行してください。
git status --porcelain
git fetch origin
git log origin/main..origin/develop --oneline
main..develop 間のコミットメッセージを取得して分析する:
git log origin/main..origin/develop --pretty=format:"%s"
以下のルールでリリースレベルを判断する:
BREAKING CHANGEfeat!:fix!:!feat: のコミットがある(major でない場合)fix: / chore: / docs: / style: / refactor: / test: のみ(major / minor でない場合)コミット一覧と判断理由を提示し、以下の選択肢を表示する:
コミット分析結果:
- feat: ログイン機能を追加
- fix: パスワードバリデーションのバグを修正
判断: minor リリース(新機能 feat が含まれるため)
リリースレベルを選択してください:
1. このまま進む(minor)
2. major に変更
3. minor に変更
4. patch に変更
5. キャンセル
ユーザーが選択するまで待機する。「5」が選ばれた場合は停止する。
最新のタグを取得する:
git tag --sort=-v:refname | head -1
1.0.0 をリリースバージョンとするvX.Y.Z または X.Y.Z 形式から数値を取り出し、選択されたリリースレベルに従ってインクリメントする
決定したバージョンを表示してユーザーに確認を求める:
リリースバージョン: v1.2.0
このバージョンで進めますか? [y/N]
y 以外が入力された場合は停止する。
git checkout develop
git pull origin develop
git checkout -b release/<バージョン>
git push origin release/<バージョン>
(例: release/1.2.0)
git checkout main
git pull origin main
git merge --no-ff release/<バージョン> -m "release: v<バージョン>"
git push origin main
git tag v<バージョン>
git push origin v<バージョン>
以下の形式で完了を報告する:
リリース完了!
バージョン : v1.2.0
リリースブランチ: release/1.2.0
マージ先 : main
タグ : v1.2.0