はじめに
仕事環境では、package.json
にある version
をバージョン名として、タグ切りを行っています。
タグを切ったバージョンがプッシュされることで、.gitlab-ci.yml
によって自動的にビルドされる仕組みを提供しています。
そのため、リリースする際は以下の操作を行う必要があります。
-
package.json
のversion
のマイナーバージョンを 1 上げる -
git flow
でタグ切りを行う - コードをプッシュする
結合テストフェーズでは頻繁にリリースを行って動作確認をする必要があったので、この操作は少し億劫でした。。。
なので自動化スクリプトを作成しました!!
使い方
リリースしたい Project と同階層に以下スクリプトを配置し、実行するだけです!
スクリプトを実行することで、上記手順を一気に行うことができます。
前提
- 以下のスクリプトはマイナーバージョンのリリースのみ対応。
スクリプト
#!/bin/sh
# develop と master を最新化
# 必要なら、、git stash -u(今いるブランチの変更分を stash)
git checkout develop && git pull origin develop
git checkout master && git pull origin master
# 現在のバージョンを取得
current_version=$(jq -r '.version' package.json)
# 現在のバージョンからマイナーバージョンを 1 足す
major_version="${current_version%%.*}"
minor_version="${current_version#*.}"
minor_version="${minor_version%%.*}"
patch_version="${current_version##*.}"
new_patch_version=$((patch_version + 1))
new_version="$major_version.$minor_version.$new_patch_version"
# package.jsom のバージョン上げ
sed -i "s/\"version\": \".*\"/\"version\": \"$new_version\"/" package.json
# タグ切り
# コミット&リリースメッセージは適宜変更してください
git add .
git commit -m "リリース準備" -n
git flow release start $new_version
git flow release finish $new_version -m "タグ切り"
git push --all
git push origin $new_version
さいごに
前提にも書いてあるように、今回のスクリプトではマイナーバージョンのみ対応なので、条件分岐を追加してメジャーバージョンなどにも対応したスクリプトを今後は書きたいです!