From 0e1fe368a2a8da703a026bb80d5c3252a6c6b92c Mon Sep 17 00:00:00 2001 From: Aleksa Sarai Date: Fri, 6 Mar 2026 14:21:22 +1100 Subject: [PATCH] gha: test both with and without libpathrs We do plan to make libpathrs required in the future, but in the meantime we should test both with and without libpathrs in our CI to catch regressions for users that will not use libpathrs initially. Signed-off-by: Aleksa Sarai --- .github/workflows/test.yml | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index a15e0d6c1..62c46719d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -27,6 +27,7 @@ jobs: matrix: os: [ubuntu-24.04, ubuntu-24.04-arm] go-version: [1.24.x, 1.25.x, 1.26.x] + libpathrs: ["libpathrs", ""] rootless: ["rootless", ""] race: ["-race", ""] criu: ["", "criu-dev"] @@ -79,9 +80,17 @@ jobs: sudo apt -y install libseccomp-dev sshfs uidmap lld - name: install libpathrs ${{ env.LIBPATHRS_VERSION }} + if: ${{ matrix.libpathrs != '' }} run: | sudo -E PATH="$PATH" ./script/build-libpathrs.sh "$LIBPATHRS_VERSION" /usr + - name: configure custom BUILDTAGS + if: ${{ matrix.libpathrs == '' }} + run: |- + # Strip out libpathrs from the default buildtags. + CUSTOM_BUILDTAGS="$(make -pn | sed -En '/^BUILDTAGS :?=/ { s/.*=// ; s/\blibpathrs\b//p }')" + echo "CUSTOM_BUILDTAGS=$CUSTOM_BUILDTAGS" >>"$GITHUB_ENV" + - name: install CRIU if: ${{ matrix.criu == '' }} env: @@ -112,7 +121,11 @@ jobs: check-latest: true - name: build - run: sudo -E PATH="$PATH" make EXTRA_FLAGS="${{ matrix.race }}" all + run: | + sudo -E PATH="$PATH" make \ + ${CUSTOM_BUILDTAGS:+BUILDTAGS="$CUSTOM_BUILDTAGS"} \ + EXTRA_FLAGS="${{ matrix.race }}" \ + all - name: Setup Bats and bats libs uses: bats-core/bats-action@4.0.0 @@ -131,7 +144,7 @@ jobs: - name: unit test if: matrix.rootless != 'rootless' - run: sudo -E PATH="$PATH" -- make TESTFLAGS="${{ matrix.race }}" localunittest + run: sudo -E PATH="$PATH" -- make ${CUSTOM_BUILDTAGS:+BUILDTAGS="$CUSTOM_BUILDTAGS"} TESTFLAGS="${{ matrix.race }}" localunittest - name: add rootless user if: matrix.rootless == 'rootless' @@ -141,7 +154,7 @@ jobs: - name: integration test (fs driver) continue-on-error: ${{ matrix.criu != '' }} # Don't let criu-dev errors fail CI. - run: sudo -E PATH="$PATH" script -e -c 'make local${{ matrix.rootless }}integration' + run: sudo -E PATH="$PATH" script -e -c 'make ${CUSTOM_BUILDTAGS:+BUILDTAGS="$CUSTOM_BUILDTAGS"} local${{ matrix.rootless }}integration' - name: integration test (systemd driver) continue-on-error: ${{ matrix.criu != '' }} # Don't let criu-dev errors fail CI. @@ -152,7 +165,7 @@ jobs: printf "[Service]\nDelegate=yes\n" | sudo tee /etc/systemd/system/user@.service.d/delegate.conf sudo systemctl daemon-reload # Run the tests. - sudo -E PATH="$PATH" script -e -c 'make RUNC_USE_SYSTEMD=yes local${{ matrix.rootless }}integration' + sudo -E PATH="$PATH" script -e -c 'make RUNC_USE_SYSTEMD=yes ${CUSTOM_BUILDTAGS:+BUILDTAGS="$CUSTOM_BUILDTAGS"} local${{ matrix.rootless }}integration' # We need to continue support for 32-bit ARM. # However, we do not have 32-bit ARM CI, so we use i386 for testing 32bit stuff.