0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

リリースに伴うGitのタグの張り替えるシェル

Last updated at Posted at 2020-11-11

はじめに

リリースに伴うGitのタグ張り替えのシェルスクリプトです。
今回は、リポジトリには含めずに、git cloneを実行するディレクトリにファイルを置くことを想定しています。
また、コミット管理用のタグとリリース作業時の切り戻し用のタグを扱う事を想定しています。

スクリプト

update_tags.sh
#!/bin/sh

REPOSITORY=[リポジトリ名]
TODAY=`date '+%Y%m%d'`
ENV_TYPE=[環境(dev, stg, prod)]
SYSTEM_NAME=[システム名]
BRANCH=${SYSTEM_NAME}-${ENV_TYPE} # ブランチの命名規則に従います

cd ${REPOSITORY}
TAG_NUM=$(printf "%02d" "`expr $(git tag -l "${TODAY}*${BRANCH}" | wc -l | awk '{print $1}') + 1`")
# リリースしたコミットの管理用タグ
RELEASE_TAG=${TODAY}-${TAG_NUM}-${BRANCH} # タグの命名規則に従います (YYYYMMDD-{採番}-ブランチ名)
# リリース作業の切り戻し用タグ
SWITCH_BACK_TAG=switch-back-${BRANCH}

# ローカルタグをリモートタグに強制的に上書きする
git pull -f origin ${BRANCH} --tag

## リリースしたコミット管理用のタグを追加
# ローカルタグ追加
git tag -a ${RELEASE_TAG} -m '' HEAD
# リモートタグ追加
git push origin ${RELEASE_TAG}

## 切り戻しタグの張り替え
# ローカルタグ削除
git tag -d ${SWITCH_BACK_TAG}
# リモートタグ削除
git push origin :refs/tags/${SWITCH_BACK_TAG}
# ローカルタグ追加
git tag -a ${SWITCH_BACK_TAG} -m '' HEAD
# リモートタグ追加
git push origin ${SWITCH_BACK_TAG}

cd ..
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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?