ci-image-git-buildpackage/gitlab-ci-git-buildpackage

44 lines
1.5 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
echo "ensure pristine-tar branch exists and is current"
git clean -fdx
git reset --hard
git fetch --all
git checkout -B pristine-tar origin/pristine-tar || ( \
echo "no pristine-tar branch, trying uscan";
apt_get_auto_install gnupg2 libwww-perl;
uscan --verbose --download-current-version --force-download --rename --skip-signature;
)
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 --git-debian-branch="$CI_COMMIT_REF_NAME"
else
gbp buildpackage -uc -us
fi