From f8a6d727a4273d8df2250af43297c4b57008b8c5 Mon Sep 17 00:00:00 2001 From: John Barnette Date: Thu, 29 Nov 2012 15:51:19 -0800 Subject: [PATCH] Add a quick script/release --- script/release | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100755 script/release diff --git a/script/release b/script/release new file mode 100755 index 0000000..6b8f9e4 --- /dev/null +++ b/script/release @@ -0,0 +1,38 @@ +#!/bin/sh +# Tag and push a release. + +set -e + +# Make sure we're in the project root. + +cd $(dirname "$0")/.. + +# Build a new gem archive. + +rm -rf cardboard-*.gem +gem build -q cardboard.gemspec + +# Make sure we're on the master branch. + +(git branch | grep '* master') || { + echo "Only release from the master branch." + exit 1 +} + +# Figure out what version we're releasing. + +tag=v`ls cardboard-*.gem | sed 's/^cardboard-\(.*\)\.gem$/\1/'` + +# Make sure we haven't released this version before. + +git fetch -t origin + +(git tag -l | grep "$tag") && { + echo "Whoops, there's already a '${tag}' tag." + exit 1 +} + +# Tag it and bag it. + +gem push cardboard-*.gem && git tag "$tag" && + git push origin master && git push origin "$tag"