LoginSignup
0
0
お題は不問!Qiita Engineer Festa 2024で記事投稿!
Qiita Engineer Festa20242024年7月17日まで開催中!

[gitlab] リリース準備が面倒なので、一気に準備してプッシュまでしてくれるスクリプトを作った

Posted at

はじめに

仕事環境では、package.json にある version をバージョン名として、タグ切りを行っています。
タグを切ったバージョンがプッシュされることで、.gitlab-ci.yml によって自動的にビルドされる仕組みを提供しています。

そのため、リリースする際は以下の操作を行う必要があります。

  1. package.jsonversion のマイナーバージョンを 1 上げる
  2. git flow でタグ切りを行う
  3. コードをプッシュする

結合テストフェーズでは頻繁にリリースを行って動作確認をする必要があったので、この操作は少し億劫でした。。。

なので自動化スクリプトを作成しました!!

使い方

リリースしたい 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

さいごに

前提にも書いてあるように、今回のスクリプトではマイナーバージョンのみ対応なので、条件分岐を追加してメジャーバージョンなどにも対応したスクリプトを今後は書きたいです!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0