use lockfile to prevent running gitlab-ci commands twice

Workaround for this bug:
https://gitlab.com/gitlab-org/gitlab-runner/issues/1380#note_48552305
This commit is contained in:
Hans-Christoph Steiner 2018-05-18 15:35:25 +02:00
parent cbb63b4343
commit 4cd308deaa
1 changed files with 26 additions and 20 deletions

View File

@ -5,28 +5,34 @@ if [ "$CI_COMMIT_REF_NAME" == "upstream" ] || [ "$CI_COMMIT_REF_NAME" == "prist
exit 0
fi
set -e
set -x
# https://gitlab.com/gitlab-org/gitlab-runner/issues/1380#note_48552305
lockfile=/.lock
if [[ ! -f $lockfile ]] ; then
set -e
set -x
apt-get -qy update
apt-get -qy dist-upgrade
apt-get -qy update
apt-get -qy dist-upgrade
cd $CI_PROJECT_DIR
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 -qy install --no-install-recommends \
build-essential dpkg-dev fakeroot git-buildpackage pristine-tar $BUILD_DEPENDS
apt-get -qy autoremove --purge
dpkg-checkbuilddeps
echo "ensure pristine-tar branch exists"
git branch -a
git remote -v
git branch --track pristine-tar origin/pristine-tar || true
echo "make master 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
cd $CI_PROJECT_DIR
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 -qy install --no-install-recommends \
build-essential dpkg-dev fakeroot git-buildpackage pristine-tar $BUILD_DEPENDS
apt-get -qy autoremove --purge
dpkg-checkbuilddeps
echo "ensure pristine-tar branch exists"
git branch -a
git remote -v
git branch --track pristine-tar origin/pristine-tar || true
echo "make master 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
fi
[[ $CI ]] && touch $lockfile
exec "$@"