diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 34af76b..50d4df7 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -5,7 +5,6 @@ on: branches: [ "master" ] pull_request: branches: [ "master" ] - workflow_dispatch: concurrency: @@ -20,12 +19,38 @@ jobs: strategy: fail-fast: false matrix: - os: - - ubuntu-latest - - macos-latest - - windows-latest - name: Build and Test 🔬 - ${{ matrix.os }} - runs-on: ${{ matrix.os }} + include: + # Linux x64 (default) + - name: ubuntu-x64 + runs-on: ubuntu-latest + arch: x64 + + # Linux arm64 - use GitHub hosted ARM runner (native) when available + - name: ubuntu-arm64 + runs-on: ubuntu-24.04-arm + arch: arm64 + + # macOS x64 (if you still need Intel macOS, check availability) + - name: macos-x64 + runs-on: macos-latest + arch: x64 + + # macOS arm64 (Apple Silicon) + - name: macos-arm64 + runs-on: macos-latest + arch: arm64 + + # Windows x64 + - name: windows-x64 + runs-on: windows-latest + arch: x64 + + # Windows arm64: only if you manage a self-hosted runner or know it's available. + # - name: windows-arm64 + # runs-on: windows-2022-arm # example — likely self-hosted / not available by default + # arch: arm64 + name: Build and Test - ${{ matrix.name}} + runs-on: ${{ matrix.runs-on }} steps: - name: Checkout repository @@ -37,8 +62,12 @@ jobs: toolchain: ${{ env.RUST_VERSION }} override: true + - name: Prepare for arch-specific build + run: | + echo "ARCH=${{ matrix.arch }} RUNS_ON=${{ matrix.runs-on }}" + - name: Build run: cargo build - name: Run tests - run: cargo test \ No newline at end of file + run: cargo test