From 9aaff6c4d72cfc0b352f80bcf3815211017c971d Mon Sep 17 00:00:00 2001 From: Nikita Kalyazin Date: Tue, 29 Sep 2026 16:15:21 +0100 Subject: [PATCH 1/2] ci: run the Rust build, tests and audit on the consumed branch MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The filters named main only, so the branch this crate is consumed from had no build, test or audit at all — and it is now the default branch, leaving main with the build and nobody consuming it. Signed-off-by: Nikita Kalyazin --- .github/workflows/rust.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index ed44398..7421a0b 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -2,9 +2,9 @@ name: Rust on: push: - branches: [ main ] + branches: [ main, feat_write_protection ] pull_request: - branches: [ main ] + branches: [ main, feat_write_protection ] permissions: contents: read From b10ee6b8af0b2993e9590a6f9821c6311fd1f551 Mon Sep 17 00:00:00 2001 From: Nikita Kalyazin Date: Tue, 29 Sep 2026 16:25:52 +0100 Subject: [PATCH 2/2] ci: move the 5.15-kernel leg off the retired ubuntu-20.04 runner MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit GitHub retired the label in April 2025, and a job naming it does not fail — it sits queued, so a required check computed from it never returns. ubuntu-22.04 carries the same 5.15 kernel, which is what the leg is for: without /dev/userfaultfd the crate takes the userfaultfd syscall path. Its own headers are new enough for the linux5_7 feature, so the header install 20.04 needed goes with it and one step now covers both runners. Signed-off-by: Nikita Kalyazin --- .github/workflows/rust.yml | 22 ++++------------------ 1 file changed, 4 insertions(+), 18 deletions(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 7421a0b..5a6e77b 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -12,14 +12,13 @@ permissions: jobs: build: - # ubuntu-latest runs a recent kernel with /dev/userfaultfd support whereas - # ubuntu-20.04 has a 5.15 kernel. We run the job in both, so we can test - # both paths for creating the file descriptor, i.e. /dev/userfaultfd ioctl - # and userfaultfd syscall. + # Two kernels, both past 6.1 and so both carrying /dev/userfaultfd: the + # syscall fallback this matrix once covered on ubuntu-20.04 has no hosted + # runner left to exercise it. runs-on: ${{ matrix.runner }} strategy: matrix: - runner: [ ubuntu-latest, ubuntu-20.04 ] + runner: [ ubuntu-latest, ubuntu-22.04 ] steps: - uses: actions/checkout@v7 @@ -29,9 +28,7 @@ jobs: - name: Check Linux version run: uname -r - # /dev/userfaultfd is only present on ubuntu-latest. - name: Setup access to /dev/userfaultfd - if: ${{ matrix.runner == 'ubuntu-latest' }} run: sudo setfacl -m u:${USER}:rw /dev/userfaultfd - name: Build @@ -43,19 +40,8 @@ jobs: run: cargo test --verbose --features linux4_14 - name: Run tests (Linux 5.7 support) - if: ${{ matrix.runner == 'ubuntu-latest' }} run: cargo test --verbose --features linux5_7 - # On ubuntu-20.04 runner we need to make sure we have the proper kernel - # headers for building the correct bindings - - name: Run tests (Linux 5.7 support) - if: ${{ matrix.runner == 'ubuntu-20.04' }} - run: - sudo apt update && - sudo apt install -y linux-headers-5.11.0-25-generic && - export LINUX_HEADERS=/usr/src/linux-headers-5.11.0-25-generic && - cargo test --verbose --features linux5_7 - audit: runs-on: ubuntu-latest