From ec203e0309187bca772d705ace8bac0ed14d1aa7 Mon Sep 17 00:00:00 2001 From: Bruno Verachten Date: Mon, 23 Mar 2026 12:15:47 +0100 Subject: [PATCH 1/3] ci: add riscv64 to release build matrix Add ubuntu-24.04-riscv to the OS matrix and release_lnx_riscv64 Makefile target, following the same pattern as the aarch64 entry. Signed-off-by: Bruno Verachten --- .github/workflows/release.yml | 5 ++++- Makefile | 4 ++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f1c944811..f165632ec 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -10,7 +10,7 @@ jobs: strategy: matrix: - os: [ubuntu-latest, ubuntu-24.04-arm, macOS-latest, windows-latest] + os: [ubuntu-latest, ubuntu-24.04-arm, ubuntu-24.04-riscv, macOS-latest, windows-latest] rust: [stable] runs-on: ${{ matrix.os }} @@ -46,6 +46,9 @@ jobs: - name: Build for linux aarch64 if: matrix.os == 'ubuntu-24.04-arm' run: make release_lnx_aarch64 + - name: Build for linux riscv64 + if: matrix.os == 'ubuntu-24.04-riscv' + run: make release_lnx_riscv64 - name: Build for macOS if: matrix.os == 'macOS-latest' run: make release_mac diff --git a/Makefile b/Makefile index f2a4a2b8d..828145b90 100644 --- a/Makefile +++ b/Makefile @@ -28,6 +28,10 @@ release_lnx_aarch64: cargo build --locked --release --target=aarch64-unknown-linux-musl zip -j ${BIN_NAME}-v${VERSION}-aarch64-linux.zip target/aarch64-unknown-linux-musl/release/${BIN_NAME} +release_lnx_riscv64: + cargo build --locked --release + zip -j ${BIN_NAME}-v${VERSION}-riscv64-linux.zip target/release/${BIN_NAME} + release_win: cargo build --locked --release --target=x86_64-pc-windows-msvc mv -v target/x86_64-pc-windows-msvc/release/${BIN_NAME}.exe ./ From f4c29fae27ea7f7772d5ad60faade5c228d27b1b Mon Sep 17 00:00:00 2001 From: Bruno Verachten Date: Mon, 30 Mar 2026 11:11:32 +0200 Subject: [PATCH 2/3] ci: add riscv64 to regression test matrix --- .github/workflows/regression.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/regression.yml b/.github/workflows/regression.yml index 6cca79684..5b1f021b2 100644 --- a/.github/workflows/regression.yml +++ b/.github/workflows/regression.yml @@ -17,6 +17,9 @@ jobs: - os: ubuntu-24.04-arm rust: stable target: aarch64-unknown-linux-gnu + - os: ubuntu-24.04-riscv + rust: stable + target: riscv64gc-unknown-linux-gnu - os: macOS-latest rust: stable target: x86_64-apple-darwin From 1ffe3b8f9ec5a7c9a9933aa15396ff1cd729bd7c Mon Sep 17 00:00:00 2001 From: Bruno Verachten Date: Sun, 5 Apr 2026 18:08:56 +0200 Subject: [PATCH 3/3] ci: skip tests on riscv64, build only MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The test suite crashes with SIGSEGV (signal 11) on native riscv64 runners. Tests that invoke run_default() — which reads all processes via procfs — trigger an invalid memory reference. This is a pre-existing issue with procfs on riscv64, not introduced by this change. Use a run_tests matrix flag: all targets keep full test coverage except riscv64gc-unknown-linux-gnu, which runs cargo build to confirm the code compiles cleanly. Signed-off-by: Bruno Verachten --- .github/workflows/regression.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.github/workflows/regression.yml b/.github/workflows/regression.yml index 5b1f021b2..8582bdb23 100644 --- a/.github/workflows/regression.yml +++ b/.github/workflows/regression.yml @@ -14,18 +14,23 @@ jobs: - os: ubuntu-latest rust: stable target: x86_64-unknown-linux-gnu + run_tests: true - os: ubuntu-24.04-arm rust: stable target: aarch64-unknown-linux-gnu + run_tests: true - os: ubuntu-24.04-riscv rust: stable target: riscv64gc-unknown-linux-gnu + run_tests: false - os: macOS-latest rust: stable target: x86_64-apple-darwin + run_tests: true - os: windows-latest rust: stable target: x86_64-pc-windows-msvc + run_tests: true runs-on: ${{ matrix.os }} steps: @@ -34,9 +39,14 @@ jobs: with: toolchain: ${{ matrix.rust }} targets: ${{ matrix.target }} + - name: Build + if: "!matrix.run_tests" + run: cargo build --locked --target ${{ matrix.target }} - name: Run tests + if: matrix.run_tests run: cargo test --locked --target ${{ matrix.target }} - name: Run tests feature variation + if: matrix.run_tests run: cargo test --locked --target ${{ matrix.target }} --no-default-features build-freebsd: