# Builds on multiple systems using different package managers: # # - Debian-based systems: Use oldest working/supported debian image for # reasonable backwards compatibility and ubuntu:rolling for new setups. # Additionally, ensure that the package works without apparmor. # # - Redhat-based systems: Use a centos-like distribution for reasonable # backwards compatibility and fedora:latest for new setups. # # - Alpine: Use it for installing directly from source. build_ubuntu_package: image: ubuntu:rolling timeout: 10 minutes variables: DEBIAN_FRONTEND: noninteractive script: - apt-get update -qy - > apt-get install --no-install-recommends -qy build-essential fakeroot lintian libapparmor-dev pkg-config gawk | grep -Ev '^(Selecting|Preparing to unpack|Unpacking)' - ./ci/printenv.sh - ./configure || (cat config.log; exit 1) - make dist - > MAKEFLAGS="$MAKEFLAGS -Orecurse" ./mkdeb.sh --enable-fatal-warnings - dpkg -i ./*.deb - make installcheck build_debian_package: image: debian:bullseye timeout: 10 minutes variables: DEBIAN_FRONTEND: noninteractive script: - apt-get update -qy - > apt-get install --no-install-recommends -qy build-essential fakeroot lintian libapparmor-dev pkg-config gawk | grep -Ev '^(Selecting|Preparing to unpack|Unpacking)' - ./ci/printenv.sh - ./configure || (cat config.log; exit 1) - make dist - > MAKEFLAGS="$MAKEFLAGS -Orecurse" ./mkdeb.sh --enable-fatal-warnings - dpkg -i ./*.deb - make installcheck build_no_apparmor: image: ubuntu:latest timeout: 10 minutes variables: DEBIAN_FRONTEND: noninteractive script: - apt-get update -qy - > apt-get install --no-install-recommends -qy build-essential fakeroot lintian pkg-config gawk | grep -Ev '^(Selecting|Preparing to unpack|Unpacking)' - ./ci/printenv.sh - ./configure || (cat config.log; exit 1) - make dist - > MAKEFLAGS="$MAKEFLAGS -Orecurse" ./mkdeb.sh --enable-fatal-warnings --disable-apparmor - dpkg -i ./*.deb - make installcheck - make installcheck | grep -F 'AppArmor support is disabled' build_redhat_package: image: almalinux:latest timeout: 10 minutes script: - dnf update -y - dnf install -y rpm-build gcc make - ./ci/printenv.sh - ./configure || (cat config.log; exit 1) - make dist - > MAKEFLAGS="$MAKEFLAGS -Orecurse" ./platform/rpm/mkrpm.sh --enable-fatal-warnings - rpm -i ./*.rpm - make installcheck build_fedora_package: image: fedora:latest timeout: 10 minutes script: - dnf update -y - dnf install -y rpm-build gcc make - ./ci/printenv.sh - ./configure || (cat config.log; exit 1) - make dist - > MAKEFLAGS="$MAKEFLAGS -Orecurse" ./platform/rpm/mkrpm.sh --enable-fatal-warnings - rpm -i ./*.rpm - make installcheck # FIXME: Cannot build src/libtrace with musl (see #6610). #build_src_package: # image: alpine:latest # timeout: 10 minutes # script: # - apk update # - apk upgrade # - apk add build-base linux-headers gawk # - ./ci/printenv.sh # # Note: Do not use ` --enable-fatal-warnings` because the build # # currently produces warnings on Alpine (see #6224). # - > # ./configure --prefix=/usr # || (cat config.log; exit 1) # - make -j "$(nproc)" -Orecurse # - make install-strip # - make installcheck debian_ci: image: registry.salsa.debian.org/salsa-ci-team/ci-image-git-buildpackage:latest timeout: 10 minutes variables: DEBFULLNAME: "$GITLAB_USER_NAME" DEBEMAIL: "$GITLAB_USER_EMAIL" DEBIAN_FRONTEND: noninteractive PKGNAME: firejail before_script: - git checkout -B ci_build "$CI_COMMIT_SHA" - gitlab-ci-enable-sid - gitlab-ci-enable-experimental - | cat >>/etc/apt/sources.list <