From 550c64412622de59f38e710085a97643c7d3c9e4 Mon Sep 17 00:00:00 2001 From: Sudip Roy Date: Fri, 12 Dec 2025 08:00:18 +0530 Subject: [PATCH 1/8] add multi-arch support --- .github/workflows/ci.yaml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 34af76b..9de1b71 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,10 +19,8 @@ jobs: strategy: fail-fast: false matrix: - os: - - ubuntu-latest - - macos-latest - - windows-latest + os: [ubuntu-latest, macos-latest, windows-latest] + arch: [x64, arm64] name: Build and Test 🔬 - ${{ matrix.os }} runs-on: ${{ matrix.os }} From 0d2a8fd377c45863d28fa8ed14f6a5e76c0a225a Mon Sep 17 00:00:00 2001 From: Sudip Roy Date: Fri, 12 Dec 2025 08:07:34 +0530 Subject: [PATCH 2/8] fix workfow --- .github/workflows/ci.yaml | 41 ++++++++++++++++++++++++++++++++++----- 1 file changed, 36 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 9de1b71..b0b95e6 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -18,11 +18,38 @@ jobs: build-test: strategy: fail-fast: false - matrix: - os: [ubuntu-latest, macos-latest, windows-latest] - arch: [x64, arm64] - name: Build and Test 🔬 - ${{ matrix.os }} - runs-on: ${{ matrix.os }} + include: + # Linux x64 (default) + - name: ubuntu-x64 + runs-on: ubuntu-22.04 + arch: x64 + + # Linux arm64 - use GitHub hosted ARM runner (native) when available + - name: ubuntu-arm64 + runs-on: ubuntu-22.04-arm + arch: arm64 + + # macOS x64 (if you still need Intel macOS, check availability) + - name: macos-x64 + runs-on: macos-14 + arch: x64 + + # macOS arm64 (Apple Silicon) + - name: macos-arm64 + runs-on: macos-14 + 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.os }} - ${{matrix.arch}} + runs-on: ${{ matrix.runs-on }} steps: - name: Checkout repository @@ -34,6 +61,10 @@ 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 From 7e5ec82111039e6591c10b1e1eabcd5779b0cb12 Mon Sep 17 00:00:00 2001 From: Sudip Roy Date: Fri, 12 Dec 2025 08:11:17 +0530 Subject: [PATCH 3/8] Refactor CI workflow to use matrix strategy --- .github/workflows/ci.yaml | 63 ++++++++++++++++++++------------------- 1 file changed, 32 insertions(+), 31 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index b0b95e6..1b253eb 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -18,36 +18,37 @@ jobs: build-test: strategy: fail-fast: false - include: - # Linux x64 (default) - - name: ubuntu-x64 - runs-on: ubuntu-22.04 - arch: x64 - - # Linux arm64 - use GitHub hosted ARM runner (native) when available - - name: ubuntu-arm64 - runs-on: ubuntu-22.04-arm - arch: arm64 - - # macOS x64 (if you still need Intel macOS, check availability) - - name: macos-x64 - runs-on: macos-14 - arch: x64 - - # macOS arm64 (Apple Silicon) - - name: macos-arm64 - runs-on: macos-14 - 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 + matrix: + include: + # Linux x64 (default) + - name: ubuntu-x64 + runs-on: ubuntu-22.04 + arch: x64 + + # Linux arm64 - use GitHub hosted ARM runner (native) when available + - name: ubuntu-arm64 + runs-on: ubuntu-22.04-arm + arch: arm64 + + # macOS x64 (if you still need Intel macOS, check availability) + - name: macos-x64 + runs-on: macos-14 + arch: x64 + + # macOS arm64 (Apple Silicon) + - name: macos-arm64 + runs-on: macos-14 + 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.os }} - ${{matrix.arch}} runs-on: ${{ matrix.runs-on }} @@ -69,4 +70,4 @@ jobs: run: cargo build - name: Run tests - run: cargo test \ No newline at end of file + run: cargo test From 1f5d5d6843f2a6e978e7d1642ada35dbd0be14ab Mon Sep 17 00:00:00 2001 From: Sudip Roy Date: Fri, 12 Dec 2025 08:14:49 +0530 Subject: [PATCH 4/8] remove windows arm64 --- .github/workflows/ci.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 1b253eb..7b48829 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -46,10 +46,10 @@ jobs: 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.os }} - ${{matrix.arch}} + # - name: windows-arm64 + # runs-on: windows-2022-arm # example — likely self-hosted / not available by default + # arch: arm64 + name: Build and Test 🔬 - ${{ matrix.runs-on}} - ${{matrix.arch}} runs-on: ${{ matrix.runs-on }} steps: From 4042ddeee3977fd739c95b7261f76b6669b1f5ca Mon Sep 17 00:00:00 2001 From: Sudip Roy Date: Fri, 12 Dec 2025 08:17:42 +0530 Subject: [PATCH 5/8] run on latest os --- .github/workflows/ci.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 7b48829..1e51baa 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -22,22 +22,22 @@ jobs: include: # Linux x64 (default) - name: ubuntu-x64 - runs-on: ubuntu-22.04 + runs-on: ubuntu-latest arch: x64 # Linux arm64 - use GitHub hosted ARM runner (native) when available - name: ubuntu-arm64 - runs-on: ubuntu-22.04-arm + runs-on: ubuntu-latest-arm arch: arm64 # macOS x64 (if you still need Intel macOS, check availability) - name: macos-x64 - runs-on: macos-14 + runs-on: macos-latest arch: x64 # macOS arm64 (Apple Silicon) - name: macos-arm64 - runs-on: macos-14 + runs-on: macos-latest arch: arm64 # Windows x64 @@ -49,7 +49,7 @@ jobs: # - name: windows-arm64 # runs-on: windows-2022-arm # example — likely self-hosted / not available by default # arch: arm64 - name: Build and Test 🔬 - ${{ matrix.runs-on}} - ${{matrix.arch}} + name: Build and Test - ${{ matrix.runs-on}} - ${{matrix.arch}} runs-on: ${{ matrix.runs-on }} steps: From 0d294d77d6651b74c9c165c8e634563846f31cef Mon Sep 17 00:00:00 2001 From: Sudip Roy Date: Fri, 12 Dec 2025 08:24:31 +0530 Subject: [PATCH 6/8] fix runner label --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 1e51baa..80a582a 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -27,7 +27,7 @@ jobs: # Linux arm64 - use GitHub hosted ARM runner (native) when available - name: ubuntu-arm64 - runs-on: ubuntu-latest-arm + runs-on: ubuntu-24.04-arm arch: arm64 # macOS x64 (if you still need Intel macOS, check availability) From 0c96f4dfae732f24dcfd87242bf76b5a4595bf06 Mon Sep 17 00:00:00 2001 From: Sudip Roy Date: Fri, 12 Dec 2025 08:25:37 +0530 Subject: [PATCH 7/8] fix names --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 80a582a..b421c3a 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -49,7 +49,7 @@ jobs: # - name: windows-arm64 # runs-on: windows-2022-arm # example — likely self-hosted / not available by default # arch: arm64 - name: Build and Test - ${{ matrix.runs-on}} - ${{matrix.arch}} + name: Build and Test - ${{ matrix.name}} - ${{matrix.arch}} runs-on: ${{ matrix.runs-on }} steps: From b54ec7cbec202624cc53527bfaf166d54274a90f Mon Sep 17 00:00:00 2001 From: Sudip Roy Date: Fri, 12 Dec 2025 08:26:47 +0530 Subject: [PATCH 8/8] fix name --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index b421c3a..50d4df7 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -49,7 +49,7 @@ jobs: # - name: windows-arm64 # runs-on: windows-2022-arm # example — likely self-hosted / not available by default # arch: arm64 - name: Build and Test - ${{ matrix.name}} - ${{matrix.arch}} + name: Build and Test - ${{ matrix.name}} runs-on: ${{ matrix.runs-on }} steps: