diff options
Diffstat (limited to 'release.sh')
-rwxr-xr-x | release.sh | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/release.sh b/release.sh new file mode 100755 index 0000000..837adb3 --- /dev/null +++ b/release.sh @@ -0,0 +1,67 @@ +#!/bin/bash +# release.sh - Prepare a release and upload it + +set -e + +USAGE="USAGE: release.sh VERSION" + +VERSION=$1 +VERSION_TAG=$(echo "$VERSION" | perl -pi -e "s/\./_/g") +TARBALL=dist/aptdaemon-$VERSION.tar.gz +DATE=$(LC_TIME=C date +%c) + +if [ -z "$(bzr status | grep -v shelve)" ]; then + echo "ERROR: Uncommitted changes, aborting" >&2 + exit 1 +fi + + +if [ ! $(echo $VERSION | egrep "^[0-9\.]+$") ]; then + echo "ERROR: Specify a vaild version number as argument" >&2 + echo $USAGE + exit 1 +fi + + +if [ -e $TARBALL.gz ]; then + echo "ERROR: Tarball already exists!" >&2 + echo $USAGE + exit 1 +fi + +echo "Preparing $VERSION release..." + +# Run the test suite +# python3 setup.py test +# python setup.py test + +bzr clean-tree --ignored + +# Set the version number +sed -i "1s/.*/VERSION $VERSION - released on $DATE/" NEWS +sed -i "s/^\(__version__ = \).*/\1'$VERSION'/" aptdaemon/__init__.py + +# Create the tarball +bzr inventory --kind file | sed "s/^/include /" > MANIFEST.in +bzr log --gnu-changelog -n0 > ChangeLog +echo "include ChangeLog" >> MANIFEST.in + +read -p "Do you want to publish the release? (y/N) " PUBLISH +echo "" + +if [ "$PUBLISH" != "y" ]; then + echo "Cancelling..." + exit 1 +fi + +echo "Uploading to Python Package Index..." +python3 setup.py sdist upload + +gpg --armor --sign --detach-sig $TARBALL + +echo "Commiting to VCS repository..." +bzr commit NEWS aptdaemon/__init__.py -m "Release version $VERSION" +bzr tag APTDAEMON_$VERSION_TAG + +echo "Uploading to Launchpad..." +lp-project-upload aptdaemon $VERSION $TARBALL |