summaryrefslogtreecommitdiffstats
path: root/debian/salsa-ci.yml
diff options
context:
space:
mode:
Diffstat (limited to 'debian/salsa-ci.yml')
-rw-r--r--debian/salsa-ci.yml83
1 files changed, 83 insertions, 0 deletions
diff --git a/debian/salsa-ci.yml b/debian/salsa-ci.yml
new file mode 100644
index 0000000..01f9153
--- /dev/null
+++ b/debian/salsa-ci.yml
@@ -0,0 +1,83 @@
+---
+include:
+ - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml
+ - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml
+
+variables:
+ SALSA_CI_DISABLE_BLHC: 1
+ SALSA_CI_DISABLE_BUILD_PACKAGE_ANY: 1
+
+# stages can only be overridden not extended, so we have to list all of them
+stages:
+ - provisioning
+ - build
+ - test
+ - test extras
+ - publish # Stage referenced by Salsa-CI template aptly stanza, so must exist even though not used
+
+# This tests running debootstrap inside an unshared user namespace.
+# Inside that namespace, mknod is not available.
+# In such an environment "mount -t proc proc /proc" will not work (see
+# #1031222) so this also tests whether the fallback to bind-mounting
+# proc works as systemd-tmpfiles will otherwise not create several files.
+test-unshare:
+ stage: test extras
+ image: $SALSA_CI_IMAGES_BASE
+ needs:
+ - job: build
+ artifacts: true
+ variables:
+ DEBOOTSTRAP_SCRIPT: $CI_PROJECT_DIR/debootstrap
+ DEBOOTSTRAP_DIR: $CI_PROJECT_DIR
+ AUTOPKGTEST_TMP: /tmp
+ script:
+ - apt-get update
+ - apt-get install --no-install-recommends -y libdistro-info-perl libdpkg-perl libipc-run-perl perl systemd systemd-container ca-certificates mmdebstrap uidmap wget
+ - mmdebstrap --variant=custom --mode=unshare --setup-hook=./debian/tests/debian-testing --skip=update,setup,cleanup - "$AUTOPKGTEST_TMP/chroot.d"
+
+test-buildd:
+ stage: test extras
+ image: $SALSA_CI_IMAGES_BASE
+ needs:
+ - job: build
+ artifacts: true
+ script:
+ - |
+ set -x
+ apt-get update
+ apt-get install --no-install-recommends -y wget
+ for SUITE in bullseye bookworm trixie; do
+ env DEBOOTSTRAP_DIR="$CI_PROJECT_DIR" ./debootstrap --variant=buildd "$SUITE" ./chroot
+ # check if chroots before trixie are unmerged and chroots of trixie
+ # or later are using merged-/usr
+ case "$SUITE" in
+ bullseye|bookworm)
+ for f in bin sbin lib; do
+ [ ! -d "./chroot/$f" ] && echo "E: /$f is not a directory" && exit 1
+ [ -L "./chroot/$f" ] && echo "E: /$f is a symlink" && exit 1
+ done
+ ;;
+ trixie)
+ for f in bin sbin lib; do
+ [ ! -L "./chroot/$f" ] && echo "E: /$f is not a symlink" && exit 1
+ done
+ ;;
+ esac
+ # check if trixie buildd chroots do not contain Priority:required
+ # packages like tzdata
+ case "$SUITE" in
+ bullseye|bookworm)
+ if [ "$(chroot ./chroot dpkg-query --no-pager --showformat '${db:Status-Status}' --show tzdata)" != "installed" ]; then
+ echo "E: tzdata should be installed in the buildd variant for bullseye and bookworm"
+ exit 1
+ fi
+ ;;
+ trixie)
+ if [ "$(chroot ./chroot dpkg-query --no-pager --showformat '${db:Status-Status}' --show tzdata)" = "installed" ]; then
+ echo "E: tzdata should not be installed in the buildd variant for trixie"
+ exit 1
+ fi
+ ;;
+ esac
+ rm -rf ./chroot
+ done