70 lines
2.7 KiB
Bash
Executable File
70 lines
2.7 KiB
Bash
Executable File
#!/bin/bash -e
|
|
|
|
. /usr/share/gitlab-ci-common
|
|
|
|
# these are all required
|
|
! test -z "$CI_PROJECT_DIR"
|
|
! test -z "$CI_COMMIT_SHA"
|
|
! test -z "$CI_COMMIT_TAG"
|
|
! test -z "$CI_COMMIT_REF_NAME"
|
|
|
|
set -x
|
|
|
|
# delete any possible remnants from previous runs, except orig tarballs
|
|
find $(dirname $CI_PROJECT_DIR) -maxdepth 1 -type f -name '*-[0-9]*.*' -print -delete
|
|
|
|
$apt_get update
|
|
|
|
cd $CI_PROJECT_DIR
|
|
if dpkg --compare-versions `dpkg -s apt |sed -n 's,^Version: \(.*\),\1,p'` ge 1.1; then
|
|
$apt_get -o APT::Get::Build-Dep-Automatic=yes build-dep $CI_PROJECT_DIR
|
|
else
|
|
# this is running on an older version, like jessie-backports
|
|
export BUILD_DEPENDS=`sed 's/\s*|[^,]*,/,/g' debian/control | perl -ne 'next if /^#/; $p=(s/^Build-Depends:\s*/ / or (/^ / and $p)); s/,|\n|\([^)]+\)//mg; print if $p'`
|
|
$apt_get install --no-install-recommends \
|
|
build-essential fakeroot git-buildpackage pristine-tar $BUILD_DEPENDS
|
|
fi
|
|
dpkg-checkbuilddeps
|
|
debversion=$(dpkg-parsechangelog -S Version)
|
|
buildpackage_options=
|
|
if [[ $debversion = *-* ]]; then
|
|
echo "ensure pristine-tar branch exists and is current"
|
|
git clean -fdx
|
|
git reset --hard
|
|
git fetch --all
|
|
uscan_download="true"
|
|
if git checkout -B pristine-tar origin/pristine-tar; then
|
|
orig=$(pristine-tar list| head -1)
|
|
tar_version=`dpkg -s tar | grep '^Version:'`
|
|
if pristine-tar checkout $orig; then
|
|
uscan_download="false"
|
|
echo "pristine-tar works"
|
|
elif [[ $tar_version == "Version: 1.30"* ]]; then
|
|
echo "WARNING: tar v1.30 breaks pristine-tar when working with commits created by older versions of tar https://bugs.debian.org/901952, downgrading to tar 1.29b-1.1"
|
|
printf 'Package: tar\nPin: version 1.30+dfsg-2\nPin-Priority: -1\n' \
|
|
> /etc/apt/preferences.d/ban-broken-tar.pref
|
|
$apt_get install --no-install-recommends wget
|
|
wget -q http://deb.debian.org/debian/pool/main/t/tar/tar_1.29b-1.1_amd64.deb
|
|
dpkg -i tar_1.29b-1.1_amd64.deb
|
|
rm -f tar_1.29b-1.1_amd64.deb
|
|
fi
|
|
rm -f $orig
|
|
buildpackage_options=--git-pristine-tar
|
|
fi
|
|
|
|
if [ $uscan_download = "true" ]; then
|
|
echo "no pristine-tar branch, trying uscan";
|
|
apt_get_auto_install gnupg2 libwww-perl;
|
|
uscan --verbose --download-current-version --force-download --rename;
|
|
fi
|
|
else
|
|
echo "building native package version $debversion"
|
|
fi
|
|
echo "make $CI_COMMIT_REF_NAME branch current for gbp"
|
|
git checkout -B "$CI_COMMIT_REF_NAME" "$CI_COMMIT_SHA"
|
|
if [ -z "$CI_COMMIT_TAG" ]; then
|
|
gbp buildpackage -uc -us $buildpackage_options --git-debian-branch="$CI_COMMIT_REF_NAME"
|
|
else
|
|
gbp buildpackage -uc -us $buildpackage_options
|
|
fi
|