make: Improve release pipeline

Hopefully this makes releases a little better for users.
In particular, this avoids listing old build artifacts in the SHA256SUMS
files when we make new releases, and users can now download them
directly.

Now to make a release you run: `make tag && make release`.
After the first make session ends, you'll have a new tag released
publicly, and then during the second make session, the release target
will notice this new tag, build some assets, and upload them!
This commit is contained in:
James Shubin
2018-11-30 18:49:52 -05:00
parent 80931e1cb4
commit 0ec00fe57f
5 changed files with 69 additions and 72 deletions

View File

@@ -8,7 +8,7 @@ BINARY="mgmt"
# git tag pointing to the current commit
TAG=$(git tag -l --points-at HEAD)
# maintainer email
MAINTAINER="mgmt@noreply.github.com"
MAINTAINER="mgmtconfig@purpleidea.com"
# project url
URL="https://github.com/purpleidea/mgmt/"
# project description
@@ -31,6 +31,17 @@ if [ "$TAG" == "" ]; then
exit 1
fi
if [ "$2" == "" ]; then
echo "version was not specified"
exit 1
fi
VERSION="$2"
if [ "$VERSION" != "$TAG" ]; then
echo "you must checkout the correct version before building (${VERSION} != ${TAG})"
exit 1
fi
# make sure the package type is valid
if [ "$1" != "deb" ] && [ "$1" != "rpm" ] && [ "$1" != "pacman" ]; then
echo "invalid package type"
@@ -39,11 +50,11 @@ fi
# there are no changelogs for pacman packages
if [ "$1" != "pacman" ]; then
CHANGELOG="--${1}-changelog=${DIR}/${1}/changelog"
CHANGELOG="--${1}-changelog=${DIR}/${VERSION}/${1}/changelog"
fi
# arguments after the first one are deps
for i in "${@:2}"; do
# arguments after the first two are deps
for i in "${@:3}"; do
DEPS="$DEPS -d $i"
done
@@ -58,7 +69,7 @@ fpm \
--license "$LICENSE" \
--input-type dir \
--output-type "$1" \
--package "${DIR}/${1}/" \
--package "${DIR}/${VERSION}/${1}/" \
${CHANGELOG} \
${DEPS} \
--prefix "$PREFIX" \