From f565800a51294efa6a5c9750325f8e88f5989585 Mon Sep 17 00:00:00 2001 From: bergquist Date: Fri, 18 May 2018 11:09:06 +0200 Subject: [PATCH] build: script for tagging and pushing a release --- scripts/tag_release.sh | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100755 scripts/tag_release.sh diff --git a/scripts/tag_release.sh b/scripts/tag_release.sh new file mode 100755 index 00000000000..9d56c4e48ca --- /dev/null +++ b/scripts/tag_release.sh @@ -0,0 +1,40 @@ +#/bin/bash + +# abort if we get any error +set -e + +_tag=$1 +_branch="$(git rev-parse --abbrev-ref HEAD)" + +if [ "${_tag}" == "" ]; then + echo "Missing version param. ex './scripts/tag_release.sh v5.1.1'" + exit 1 +fi + +if [ "${_branch}" == "master" ]; then + echo "you cannot tag releases from the master branch" + echo "please checkout the release branch" + echo "ex 'git checkout v5.1.x'" + exit 1 +fi + +# always make sure to pull latest changes from origin +echo "pulling latest changes from ${_branch}" +git pull origin ${_branch} + +# create signed tag for latest commit +git tag -s "${_tag}" -m "release ${_tag}" + +# verify the signed tag +git tag -v "${_tag}" + +echo "Make sure the tag is signed as expected" +echo "press [y] to push the tags" + +read -n 1 confirm + +if [ "${confirm}" == "y" ]; then + git push origin "${_branch}" --tags +else + echo "Abort! " +fi