blob: d860f6755bc887fd1637cd4f559067b226c9dafa [file] [log] [blame]
# Script to run after a release has been tagged, signed and pushed
# to git. Will do a fresh checkout, verify the git tag, do fresh
# build/dist, sign the dist with gpg, create a backup copy in HOME,
# upload the tar.gz and sig to sourceware, checkout bzip2-htdocs,
# copy over the new changes, manual, etc. and git push that to update
# Any error is fatal
set -e
# We take one argument, the version (e.g. 1.0.7)
if [ $# -ne 1 ]; then
echo "$0 <version> (e.g. 1.0.7)"
exit 1
echo " === NOTE === "
echo "Requires a sourceware account in the bzip2 group."
echo "Make sure the git repo was tagged, signed and pushed"
echo "If not, please double check the source tree is release ready first"
echo "You probably want to run ./ $VERSION first."
echo "Then do:"
echo " git tag -s -m \"bzip2 $VERSION release\" bzip2-$VERSION"
echo " git push --tags"
read -p "Do you want to continue creating/uploading the release (yes/no)? "
if [ "x$REPLY" != "xyes" ]; then
echo "OK, till next time."
echo "OK, creating and updating the release."
# Create a temporary directoy and make sure it is cleaned up.
tempdir=$(mktemp -d) || exit
trap "rm -rf -- ${tempdir}" EXIT
pushd "${tempdir}"
# Checkout
git clone git://
cd bzip2
git tag --verify "bzip2-${VERSION}"
git checkout -b "$VERSION" "bzip2-${VERSION}"
# Create dist (creates bzip2-${VERSION}.tar.gz)
make dist
# Sign (creates bzip2-${VERSION}.tar.gz.sig)
gpg -b bzip2-${VERSION}.tar.gz
# Create backup copy
echo "Putting a backup copy in $HOME/bzip2-$VERSION"
mkdir $HOME/bzip2-$VERSION
cp bzip2-${VERSION}.tar.gz bzip2-${VERSION}.tar.gz.sig $HOME/bzip2-$VERSION/
# Upload
scp bzip2-${VERSION}.tar.gz bzip2-${VERSION}.tar.gz.sig \
ssh "(cd /sourceware/ftp/pub/bzip2 \
&& ln -sf bzip2-$VERSION.tar.gz bzip2-latest.tar.gz \
&& ln -sf bzip2-$VERSION.tar.gz.sig bzip2-latest.tar.gz.sig \
&& ls -lah bzip2-latest*)"
# Update homepage, manual, etc.
cd "${tempdir}"
git clone ssh://
cp bzip2/CHANGES bzip2/bzip.css bzip2-htdocs/
cp bzip2/bzip.css bzip2/bzip2.txt bzip2/manual.{html,pdf} bzip2-htdocs/manual/
cd bzip2-htdocs
# Update version in html pages.
sed -i -e "s/The current stable version is bzip2 [0-9]\.[0-9]\.[0-9]\+/The current stable version is bzip2 ${VERSION}/" *.html */*.html
git commit -a -m "Update for bzip2 $VERSION release"
git show
git push
# Cleanup
trap - EXIT