From 6a7215eaa946b55bd3003958880bb08c5c664fcd Mon Sep 17 00:00:00 2001 From: Zac Walker Date: Tue, 9 Dec 2025 14:29:03 +0100 Subject: [PATCH 1/2] Add arm to build pipelines --- .github/workflows/main.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index f6348484..658b8504 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -16,7 +16,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-latest, windows-latest] + os: [ubuntu-latest, windows-latest, ubuntu-24.04-arm, windows-11-arm] steps: # prep - name: Checkout @@ -48,7 +48,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-latest, windows-latest] + os: [ubuntu-latest, windows-latest, ubuntu-24.04-arm, windows-11-arm] steps: # prep - name: Checkout @@ -204,7 +204,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-latest, windows-latest] + os: [ubuntu-latest, windows-latest, ubuntu-24.04-arm, windows-11-arm] steps: # prep - name: Checkout @@ -259,7 +259,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-latest, windows-latest] + os: [ubuntu-latest, windows-latest, ubuntu-24.04-arm, windows-11-arm] steps: # prep - name: Checkout From 38e7a37ff4c9972de18305ba5d53765e7be2c944 Mon Sep 17 00:00:00 2001 From: Zac Walker Date: Thu, 8 Jan 2026 15:26:53 +0100 Subject: [PATCH 2/2] Exclude Windows ARM64 from coverage (Recommended) --- .github/actions/setup/action.yml | 6 ++++-- .github/workflows/main.yml | 17 ++++++++++++++--- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/.github/actions/setup/action.yml b/.github/actions/setup/action.yml index 0e0ade4b..d804c89d 100644 --- a/.github/actions/setup/action.yml +++ b/.github/actions/setup/action.yml @@ -79,15 +79,17 @@ runs: echo "cargo_tools=$expanded" >> "$GITHUB_OUTPUT" fi + # Note: sccache is skipped on Windows ARM64 due to missing binaries + # See: https://github.com/Mozilla-Actions/sccache-action/issues/189 - name: Configure Sccache - if: inputs.enable-sccache == 'true' + if: inputs.enable-sccache == 'true' && !(runner.os == 'Windows' && runner.arch == 'ARM64') shell: bash run: | echo "SCCACHE_GHA_ENABLED=true" >> "$GITHUB_ENV" echo "RUSTC_WRAPPER=sccache" >> "$GITHUB_ENV" - name: Start Sccache - if: inputs.enable-sccache == 'true' + if: inputs.enable-sccache == 'true' && !(runner.os == 'Windows' && runner.arch == 'ARM64') uses: mozilla-actions/sccache-action@v0.0.9 with: version: ${{ env.SCCACHE_VERSION }} diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 658b8504..ebf011d9 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -198,13 +198,22 @@ jobs: delete: true extended-analysis: + name: extended-analysis (${{ matrix.os }}) if: github.event_name == 'pull_request' needs: [testing, static-analysis] runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: - os: [ubuntu-latest, windows-latest, ubuntu-24.04-arm, windows-11-arm] + include: + - os: ubuntu-latest + target: x86_64-unknown-linux-gnu + - os: windows-latest + target: x86_64-pc-windows-msvc + - os: ubuntu-24.04-arm + target: aarch64-unknown-linux-gnu + - os: windows-11-arm + target: aarch64-pc-windows-msvc steps: # prep - name: Checkout @@ -222,7 +231,7 @@ jobs: run: cargo +${{ env.RUST_NIGHTLY }} udeps --all-features --workspace --color always - name: Careful if: success() || failure() - run: cargo +${{ env.RUST_NIGHTLY }} careful nextest run --all-features --workspace --color always --target ${{ runner.os == 'Linux' && 'x86_64-unknown-linux-gnu' || 'x86_64-pc-windows-msvc' }} + run: cargo +${{ env.RUST_NIGHTLY }} careful nextest run --all-features --workspace --color always --target ${{ matrix.target }} - name: Miri if: success() || failure() run: cargo +${{ env.RUST_NIGHTLY }} miri test --all-features --workspace @@ -259,7 +268,9 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-latest, windows-latest, ubuntu-24.04-arm, windows-11-arm] + # Note: windows-11-arm excluded due to LLVM coverage instrumentation bugs + # causing "malformed instrumentation profile data: symbol name is empty" errors + os: [ubuntu-latest, windows-latest, ubuntu-24.04-arm] steps: # prep - name: Checkout