build: add tools/build_release.sh script

Add script to do a release.
This commit is contained in:
Thomas Haller 2017-02-28 12:03:26 +01:00
parent f0af5d5a0c
commit 3b2071e970

82
tools/build_release.sh Executable file
View File

@ -0,0 +1,82 @@
#!/bin/bash
# script to create libnl release.
# Steps:
# - create new commit, bumping version number
# - run this script
# - check all is good
# - tag the commit (signed)
# git tag -m 'libnl-3.2.26-rc1' -s libnl3_2_26rc1 HEAD
# - publish the tarballs
# - push the commit to github
# - publish the tag on github
# - publish the tarballs on github
# - send ANN email
die() {
printf '%s\n' "$@"
exit 1
}
set -x
set -e
cd "$(dirname "$0")/.."
git_dir="$(readlink -f "$(git rev-parse --show-toplevel)")"
test -f "$git_dir/tools/build_release.sh"
Build() {
test "$(git status --porcelain)" = "" || die "there are uncommited changes"
git clean -fdx
./autogen.sh
./configure
make -j 5
make -C doc
make -C doc gendoc
make -j 5 distcheck
make -C doc dist
echo "Build: success"
}
Copy() {
local V="$(ls -1 ./libnl-*.tar.gz | sed -n 's/^\.\/libnl-\(3\.[0-9]\+\.[0-9]\+\(-rc[0-9]\)\?\).tar.gz$/\1/p')"
test -n "$V"
local REL="libnl-$V"
rm -rf "./$REL"
mkdir "./$REL"
ln "./libnl-$V.tar.gz" "./$REL/"
ln "./doc/libnl-doc-$V.tar.gz" "./$REL/"
(
cd "./$REL/"
for F in "libnl-$V.tar.gz" "libnl-doc-$V.tar.gz"; do
md5sum "./$F" > "./$F.md5sum"
sha256sum "./$F" > "./$F.sha256sum"
gpg ${GPG_USER--u thaller@redhat.com} --armor --verbose -o "./$F.sig" --detach-sign "./$F"
done
)
tar -cvf "./$REL.tar" "./$REL/"
echo "Copy: success"
}
BuildAll() {
Build || return
Copy || return
echo "BuildAll: success"
}
case "$1" in
Build)
Build
;;
Copy)
Copy
;;
BuildAll)
BuildAll
;;
*)
echo "SYNOPSIS: $0 Build|Copy|BuildAll"
echo "WARNING: does a git-clean first!!"
;;
esac