Changes
This commit is contained in:
parent
75d7a978a7
commit
a7b558bc6d
54
basetag.sh
Executable file
54
basetag.sh
Executable file
@ -0,0 +1,54 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# https://gist.github.com/CSTDev/08c127680e3b5fae38c051da3e489351
|
||||||
|
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
#get highest tag number containing at least 2 dots
|
||||||
|
VERSION=`git describe --abbrev=0 --tags --match="v[0-9]*\.*\.*"`
|
||||||
|
|
||||||
|
#replace . with space so can split into an array
|
||||||
|
VERSION_BITS=(${VERSION//./ })
|
||||||
|
|
||||||
|
#get number parts and increase last one by 1
|
||||||
|
VNUM1=${VERSION_BITS[0]}
|
||||||
|
VNUM2=${VERSION_BITS[1]}
|
||||||
|
VNUM3=${VERSION_BITS[2]}
|
||||||
|
VNUM1=`echo $VNUM1 | sed 's/v//'`
|
||||||
|
|
||||||
|
# Check for #major or #minor in commit message and increment the relevant version number
|
||||||
|
MAJOR=`git log --format=%B -n 1 HEAD | grep '#major'`
|
||||||
|
MINOR=`git log --format=%B -n 1 HEAD | grep '#minor'`
|
||||||
|
|
||||||
|
if [ "$MAJOR" ]; then
|
||||||
|
echo "Update major version"
|
||||||
|
VNUM1=$((VNUM1+1))
|
||||||
|
VNUM2=0
|
||||||
|
VNUM3=0
|
||||||
|
elif [ "$MINOR" ]; then
|
||||||
|
echo "Update minor version"
|
||||||
|
VNUM2=$((VNUM2+1))
|
||||||
|
VNUM3=0
|
||||||
|
else
|
||||||
|
echo "Update patch version"
|
||||||
|
VNUM3=$((VNUM3+1))
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
#create new tag
|
||||||
|
NEW_TAG="v$VNUM1.$VNUM2.$VNUM3"
|
||||||
|
|
||||||
|
echo "Updating $VERSION to $NEW_TAG"
|
||||||
|
|
||||||
|
#get current hash and see if it already has a tag
|
||||||
|
GIT_COMMIT=`git rev-parse HEAD`
|
||||||
|
NEEDS_TAG=`git describe --contains $GIT_COMMIT`
|
||||||
|
|
||||||
|
#only tag if no tag already (would be better if the git describe command above could have a silent option)
|
||||||
|
if [ -z "$NEEDS_TAG" ]; then
|
||||||
|
echo "Tagged with $NEW_TAG (Ignoring fatal:cannot describe - this means commit is untagged) "
|
||||||
|
git tag $NEW_TAG
|
||||||
|
git push --tags
|
||||||
|
else
|
||||||
|
echo "Already a tag on this commit"
|
||||||
|
fi
|
||||||
Loading…
x
Reference in New Issue
Block a user