From af55c4bb8cf92305c9cb7c86c7734b8788f72a29 Mon Sep 17 00:00:00 2001 From: can1357 Date: Mon, 16 Feb 2026 20:54:47 +0100 Subject: [PATCH] ci(workflows): refactored CI matrix to consolidate variant builds and simplify configuration - Refactored CI matrix to consolidate variant builds into a single loop per platform-arch combination. - Simplified build configuration by moving variant-specific RUSTFLAGS into build script logic instead of matrix entries. - Updated artifact naming to use glob pattern for multi-variant uploads. --- .github/workflows/ci.yml | 60 +++++++++++++++------------------------- 1 file changed, 22 insertions(+), 38 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 75542799f..f037c1e3b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -43,50 +43,22 @@ jobs: - os: ubuntu-22.04 platform: linux arch: x64 - variant: modern - variant_suffix: "-modern" - rustflags: "-C target-cpu=x86-64-v3" - - os: ubuntu-22.04 - platform: linux - arch: x64 - variant: baseline - variant_suffix: "-baseline" - rustflags: "-C target-cpu=x86-64-v2" + variants: baseline modern - os: ubuntu-22.04 platform: linux arch: arm64 - variant: "" - variant_suffix: "" target: aarch64-unknown-linux-gnu - os: macos-15-intel platform: darwin arch: x64 - variant: modern - variant_suffix: "-modern" - rustflags: "-C target-cpu=x86-64-v3" - - os: macos-15-intel - platform: darwin - arch: x64 - variant: baseline - variant_suffix: "-baseline" - rustflags: "-C target-cpu=x86-64-v2" + variants: baseline modern - os: macos-14 platform: darwin arch: arm64 - variant: "" - variant_suffix: "" - os: windows-latest platform: win32 arch: x64 - variant: modern - variant_suffix: "-modern" - rustflags: "-C target-cpu=x86-64-v3" - - os: windows-latest - platform: win32 - arch: x64 - variant: baseline - variant_suffix: "-baseline" - rustflags: "-C target-cpu=x86-64-v2" + variants: baseline modern runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 @@ -106,20 +78,32 @@ jobs: run: | sudo apt-get update sudo apt-get install -y gcc-aarch64-linux-gnu - - name: Build native addon + - name: Build native addon(s) env: CROSS_TARGET: ${{ matrix.target }} TARGET_PLATFORM: ${{ matrix.platform }} TARGET_ARCH: ${{ matrix.arch }} - TARGET_VARIANT: ${{ matrix.variant }} CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: aarch64-linux-gnu-gcc - RUSTFLAGS: ${{ matrix.rustflags }} - run: bun --cwd=packages/natives run build:native - - name: Upload native addon + shell: bash + run: | + VARIANTS="${{ matrix.variants }}" + if [ -z "$VARIANTS" ]; then + bun --cwd=packages/natives run build:native + else + for variant in $VARIANTS; do + case "$variant" in + baseline) export RUSTFLAGS="-C target-cpu=x86-64-v2" ;; + modern) export RUSTFLAGS="-C target-cpu=x86-64-v3" ;; + esac + export TARGET_VARIANT="$variant" + bun --cwd=packages/natives run build:native + done + fi + - name: Upload native addon(s) uses: actions/upload-artifact@v4 with: - name: pi-natives-${{ matrix.platform }}-${{ matrix.arch }}${{ matrix.variant_suffix }} - path: packages/natives/native/pi_natives.${{ matrix.platform }}-${{ matrix.arch }}${{ matrix.variant_suffix }}.node + name: pi-natives-${{ matrix.platform }}-${{ matrix.arch }} + path: packages/natives/native/pi_natives.${{ matrix.platform }}-${{ matrix.arch }}*.node if-no-files-found: error test: