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 f6348484..ebf011d9 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 @@ -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] + 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] + # 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