Add release script
This commit is contained in:
parent
eb1e6beb07
commit
a731bc9623
42
script/release
Executable file
42
script/release
Executable file
@ -0,0 +1,42 @@
|
||||
#!/bin/sh
|
||||
# Tag and push a release.
|
||||
|
||||
set -e
|
||||
|
||||
# Make sure we're in the project root.
|
||||
|
||||
cd $(dirname "$0")/..
|
||||
|
||||
# Make sure the darn thing works
|
||||
|
||||
bundle update
|
||||
|
||||
# Build a new gem archive.
|
||||
|
||||
rm -rf jekyll-theme-hacker-*.gem
|
||||
gem build -q jekyll-theme-hacker.gemspec
|
||||
|
||||
# Make sure we're on the master branch.
|
||||
|
||||
(git branch | grep -q 'master') || {
|
||||
echo "Only release from the master branch."
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Figure out what version we're releasing.
|
||||
|
||||
tag=v`ls jekyll-theme-hacker-*.gem | sed 's/^jekyll-theme-hacker-\(.*\)\.gem$/\1/'`
|
||||
|
||||
# Make sure we haven't released this version before.
|
||||
|
||||
git fetch -t origin
|
||||
|
||||
(git tag -l | grep -q "$tag") && {
|
||||
echo "Whoops, there's already a '${tag}' tag."
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Tag it and bag it.
|
||||
|
||||
gem push jekyll-theme-hacker-*.gem && git tag "$tag" &&
|
||||
git push origin master && git push origin "$tag"
|
Loading…
Reference in New Issue
Block a user