diff --git a/Makefile b/Makefile index 309aeee4d5..10d7a257c5 100644 --- a/Makefile +++ b/Makefile @@ -48,5 +48,5 @@ installer-zip: # Tag the release tag-release: - cd installer && ./tag-release.sh + cd installer && ./tag_release.sh diff --git a/installer/tag_release.sh b/installer/tag_release.sh new file mode 100755 index 0000000000..a914c1a505 --- /dev/null +++ b/installer/tag_release.sh @@ -0,0 +1,71 @@ +#!/bin/bash + +set -e + +BCYAN="\e[1;36m" +BYELLOW="\e[1;33m" +BGREEN="\e[1;32m" +BRED="\e[1;31m" +RED="\e[31m" +RESET="\e[0m" + +function does_tag_exist { + git rev-parse --quiet --verify "refs/tags/$1" >/dev/null +} + +function git_show_ref { + git show-ref --dereference $1 --abbrev 7 +} + +function git_show { + git show -s --format='%h %s' $1 +} + +VERSION=$( + cd .. + python -c "from invokeai.version import __version__ as version; print(version)" +) +PATCH="" +MAJOR_VERSION=$(echo $VERSION | sed 's/\..*$//') +VERSION="v${VERSION}${PATCH}" +LATEST_TAG="v${MAJOR_VERSION}-latest" + +if does_tag_exist $VERSION; then + echo -e "${BCYAN}${VERSION}${RESET} already exists:" + git_show_ref tags/$VERSION + echo +fi +if does_tag_exist $LATEST_TAG; then + echo -e "${BCYAN}${LATEST_TAG}${RESET} already exists:" + git_show_ref tags/$LATEST_TAG + echo +fi + +echo -e "${BGREEN}HEAD${RESET}:" +git_show +echo + +echo -e -n "Create tags ${BCYAN}${VERSION}${RESET} and ${BCYAN}${LATEST_TAG}${RESET} @ ${BGREEN}HEAD${RESET}, ${RED}deleting existing tags on remote${RESET}? " +read -e -p 'y/n [n]: ' input +RESPONSE=${input:='n'} +if [ "$RESPONSE" == 'y' ]; then + echo + echo -e "Deleting ${BCYAN}${VERSION}${RESET} tag on remote..." + git push --delete origin $VERSION + + echo -e "Tagging ${BGREEN}HEAD${RESET} with ${BCYAN}${VERSION}${RESET} locally..." + if ! git tag -fa $VERSION; then + echo "Existing/invalid tag" + exit -1 + fi + + echo -e "Deleting ${BCYAN}${LATEST_TAG}${RESET} tag on remote..." + git push --delete origin $LATEST_TAG + + echo -e "Tagging ${BGREEN}HEAD${RESET} with ${BCYAN}${LATEST_TAG}${RESET} locally..." + git tag -fa $LATEST_TAG + + echo -e "Pushing updated tags to remote..." + git push origin --tags +fi +exit 0