#!/bin/bash
#
# - Use "execute shell" step in Jenkins like
#
#   export ARCH=i386
#   export DIST=sid
#   jenkins-scratchbuilder
#
# - jenkins must be be able to invoke cowbuilder/pbuilder via sudo:
#
#   %pbuilder ALL = SETENV: NOPASSWD: /usr/sbin/cowbuilder, /usr/sbin/pbuilder
#
# - It assumes you checked out the sources into scratchbuild/

set +e

# Remove old build artifacts from workspace
rm -f *.deb *.changes *.build *.dsc

# We assume jenkins was told to checkout into a specific subdir
# named scratchbuild
cd scratchbuild/

# Make sure we have an up-to-date cowbuilder environment
# Note that git-pbuilder will pick up $DIST and $ARCH from the environment
[ -d /var/cache/pbuilder/base.cow ] || git-pbuilder create
git-pbuilder update

# Cleanup any leftovers
git clean -dfx

# Reset the changelog
git checkout -f debian/changelog

# Create a monotonically increasing changelog by including the build number
gbp dch -S -a --ignore-branch --snapshot-number=${BUILD_NUMBER}

# Build the package
[ -z ARCH ] || GBP_OPTS="$GBP_OPTS --git-arch=$ARCH"
[ -z DIST ] || GBP_OPTS="$GBP_OPTS --git-dist=$DIST"
gbp buildpackage ${GBP_OPTS} --git-ignore-branch --git-pbuilder --git-cleaner=/bin/true --git-ignore-new --git-pristine-tar -b
