From 5446c73646f0e14a0f5672f57b5e61251c30d1e5 Mon Sep 17 00:00:00 2001 From: John Sirois Date: Sun, 22 Mar 2026 15:57:22 -0700 Subject: [PATCH 1/2] Do a full cross-build of pexrc. --- .github/workflows/ci.yml | 55 +++++++++++++++++++--------------------- 1 file changed, 26 insertions(+), 29 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6cd0d7a..450faf6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,34 +22,6 @@ jobs: run: | echo "This is a dummy step that will never run." - build: - name: "${{ matrix.name }} build" - needs: setup - runs-on: ${{ matrix.os }} - strategy: - matrix: - # N.B.: macos-14 is the oldest non-deprecated ARM Mac runner. - include: - - name: Linux aarch64 - os: ubuntu-22.04-arm - - name: Linux x86_64 - os: ubuntu-22.04 - - name: Mac aarch64 - os: macos-14 - - name: Mac x86_64 - os: macos-15-intel - - name: Windows aarch64 - os: windows-11-arm - - name: Windows x86_64 - os: windows-2022 - steps: - - name: Checkout Pexrc - uses: actions/checkout@v6 - - name: Build pexrc binary for all targets. - run: | - PEXRC_TARGETS=all cargo build --release - target/release/pexrc info - checks: name: "Check Formatting and Lints" needs: setup @@ -63,6 +35,31 @@ jobs: cargo +nightly fmt --check --all cargo clippy --locked --all + cross-build: + name: "Cross-build pexrc" + needs: setup + runs-on: ubuntu-22.04-arm + steps: + - name: Checkout Pexrc + uses: actions/checkout@v6 + - name: Build pexrc binary for all targets. + run: | + PEXRC_TARGETS=all cargo zigbuild \ + --release \ + --target aarch64-unknown-linux-gnu \ + --target aarch64-unknown-linux-musl \ + --target armv7-unknown-linux-gnueabihf \ + --target powerpc64le-unknown-linux-gnu \ + --target riscv64gc-unknown-linux-gnu \ + --target s390x-unknown-linux-gnu \ + --target x86_64-unknown-linux-gnu \ + --target x86_64-unknown-linux-musl \ + --target aarch64-apple-darwin \ + --target x86_64-apple-darwin \ + --target aarch64-pc-windows-gnullvm \ + --target x86_64-pc-windows-gnu + target/aarch64-unknown-linux-gnu/release/pexrc info + tests: name: "${{ matrix.name }} tests" needs: setup @@ -94,8 +91,8 @@ jobs: final-status: name: Gather Final Status needs: - - build - checks + - cross-build - tests runs-on: ubuntu-24.04 steps: From 9ffe0ab1f054b589dfb88e6d719c2dfb568e10b3 Mon Sep 17 00:00:00 2001 From: John Sirois Date: Sun, 22 Mar 2026 16:02:10 -0700 Subject: [PATCH 2/2] Ensure build tooling is bootstrapped. --- .github/workflows/ci.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 450faf6..e01d413 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -44,6 +44,9 @@ jobs: uses: actions/checkout@v6 - name: Build pexrc binary for all targets. run: | + # N.B.: This is needed to bootstrap tools, but the work for the native host does not go + # to waste. + cargo build --release PEXRC_TARGETS=all cargo zigbuild \ --release \ --target aarch64-unknown-linux-gnu \