Skip to content

Instantly share code, notes, and snippets.

@mpriscella
Created September 15, 2016 19:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mpriscella/5f73a38128e5a2d37e4084ca62c34130 to your computer and use it in GitHub Desktop.
Save mpriscella/5f73a38128e5a2d37e4084ca62c34130 to your computer and use it in GitHub Desktop.
Tag Deploy
#! /bin/bash
dry_run=false
while [[ $# > 0 ]]; do
case "$1" in
-b|--build)
build="$2"
shift
;;
-v|--version)
version="$2"
shift
;;
-d|--dry)
dry_run=true
shift
;;
*)
;;
esac
shift
done
# automatically increments build number if not provided
last_tag="$(git tag --list | sort | tail -n1)"
if [[ -n "$last_tag" && -z "$build" && -z "$version" ]]; then
today=$(date +'%Y.%m.%d')
if [[ $(echo $last_tag | cut -d. -f 1,2,3) = "v$today" ]]; then
build_number="$(echo $last_tag | cut -f 4 -d\.)"
build_number="$(( $build_number + 1 ))"
build="$build_number"
fi
fi
if [ -z "$version" ]; then
date=$(date +'%Y.%m.%d')
if [ -z "$build" ]; then
build=0
fi
version="$date.$build"
tag=v$version
else
tag=$version
fi
if $dry_run; then
echo "$tag"
else
git tag -a $tag -m "Version $version"
git push origin $tag
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment