From f110b24101250d2a56adc71426375caa505a759c Mon Sep 17 00:00:00 2001 From: Roman Lebedev Date: Wed, 19 Nov 2025 20:13:58 +0300 Subject: [PATCH] Deb orchestrator: also run autopkgtest/DKMS under clang --- .github/workflows/deb-buildd.yml | 339 ++++++++++++++++++++++++++++--- 1 file changed, 313 insertions(+), 26 deletions(-) diff --git a/.github/workflows/deb-buildd.yml b/.github/workflows/deb-buildd.yml index 6a576b0a..f8c26f0e 100644 --- a/.github/workflows/deb-buildd.yml +++ b/.github/workflows/deb-buildd.yml @@ -27,7 +27,7 @@ on: GPG_SIGNING_SUBKEY_FINGERPRINT: jobs: - linux: + buildd: runs-on: ${{ inputs.runs-on }} env: CONTAINER_DISTRO: trixie @@ -73,7 +73,6 @@ jobs: apt install eatmydata eatmydata apt install \ podman \ - qemu-user-static \ ; apt clean - name: Start the container @@ -131,32 +130,17 @@ jobs: eatmydata apt full-upgrade eatmydata apt install \ ${{ inputs.dist-name }}-keyring \ - arch-test \ - autopkgtest \ curl \ debsig-verify \ devscripts \ - dosfstools \ - e2fsprogs \ - fakemachine \ - fdisk \ gnupg \ iproute2 \ - ipxe-qemu \ - libarchive13 \ mmdebstrap \ - mtools \ - ovmf \ - qemu-efi-aarch64 \ - qemu-kvm \ - qemu-utils \ sbuild \ sudo \ - systemd-boot-efi \ tar \ uidmap \ xz-utils \ - zerofree \ zip \ ; apt clean @@ -495,20 +479,295 @@ jobs: with: subject-name: artifact-bin-${{ inputs.dist-version }}-${{ inputs.host-arch }}.tar.zip subject-digest: sha256:${{ steps.deb-bin-upload.outputs.artifact-digest }} - - name: Build Qemu image for autopkgtest - timeout-minutes: 2 - id: qemu-image - if: inputs.dist-name == 'debian' && inputs.dist-version != 'trixie' && inputs.machine-arch == 'amd64' && inputs.build-arch == inputs.machine-arch && inputs.host-arch == inputs.build-arch + outputs: + deb-bin-artifact-id: ${{ steps.deb-bin-upload.outputs.artifact-id }} + autopkgtest: + needs: buildd + if: inputs.dist-name == 'debian' && inputs.dist-version != 'trixie' && inputs.machine-arch == 'amd64' && inputs.build-arch == inputs.machine-arch && inputs.host-arch == inputs.build-arch + runs-on: ${{ inputs.runs-on }} + env: + CONTAINER_DISTRO: trixie + strategy: + fail-fast: false + matrix: + toolchain: [ GNU, LLVM ] + steps: + - name: Configure baseline system + timeout-minutes: 1 + shell: sudo sh "{0}" + run: | + set -xe + mount -t tmpfs tmpfs ${{ github.workspace }} + echo "set man-db/auto-update false" | debconf-communicate + dpkg-reconfigure man-db + mkdir -p /etc/apt/apt.conf.d + mkdir -p /etc/dpkg/dpkg.cfg.d + tee /etc/apt/apt.conf.d/99gh > /dev/null < /dev/null < /dev/null < /dev/null < /dev/null < /dev/null < /dev/null < /dev/null < + + + + + + + + + + + EOT + cd "${{ github.workspace }}/incoming" + find . -type f \( -name '*.deb' -or -name '*.ddeb' \) -print0 | xargs --null -I'{}' sh -c " \ + echo '::group::Checking signature on {}' && \ + ( \ + debsig-verify --verbose {} \ + ) && \ + echo '::endgroup::' \ + " + - name: Build QEMU image for autopkgtest + timeout-minutes: 2 shell: sudo podman exec --interactive --tty container eatmydata sh "{0}" run: | set -xe - . ~/.env IMAGE="/tmp/autopkgtest-qemu-image.qcow2" echo "IMAGE=$(echo ${IMAGE})" >> ~/.env + MIRROR="http://deb.debian.org/debian" + echo '::group::Building QEMU image for autopkgtest' mmdebstrap-autopkgtest-build-qemu --boot=efi --mirror "$MIRROR" "${{ inputs.dist-version }}" "$IMAGE" + echo '::endgroup::' - name: Run autopkgtest timeout-minutes: 10 - if: steps.qemu-image.conclusion != 'skipped' shell: sudo podman exec --interactive --tty container eatmydata sh "{0}" run: | set -xe @@ -522,12 +781,39 @@ jobs: else exit 1 fi + tee "${{ github.workspace }}/setup-commands.sh" > /dev/null <