From 94152bb453547b8b31d5f9d81133c1b130cc8853 Mon Sep 17 00:00:00 2001 From: Hanzo AI Date: Mon, 1 Jun 2026 22:41:17 -0700 Subject: [PATCH] ci(release): cross-compile darwin binaries on lux-build pool GitHub-hosted macos-13 queues block the release pipeline for hours. The build is already pure Go cross-compile (CGO_ENABLED=0 GOOS=darwin GOARCH=$arch) so there's no reason to use a Mac runner. Route through the self-hosted lux-build ARC pool (fast, plentiful) instead. Replace 7z (not on ubuntu) with apt-installed zip in the same step. Output filename + artifact name are unchanged. --- .github/workflows/build-macos-release.yml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build-macos-release.yml b/.github/workflows/build-macos-release.yml index c39cd06787..e64884b870 100644 --- a/.github/workflows/build-macos-release.yml +++ b/.github/workflows/build-macos-release.yml @@ -21,15 +21,17 @@ on: # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: - # This workflow contains a single job called "build" - # Cross-compile both darwin/amd64 and darwin/arm64 on macos-13. + # Cross-compile both darwin/amd64 and darwin/arm64 from Linux. The build + # uses CGO_ENABLED=0 + GOOS=darwin GOARCH=$arch — pure Go, no Darwin + # toolchain required. We run on the self-hosted `lux-build` ARC pool + # rather than `macos-13` (which has long GitHub-hosted queues) to keep + # the release pipeline unblocked. build-mac: strategy: fail-fast: false matrix: goarch: [amd64, arm64] - # The type of runner that the job will run on (GH-hosted arm64 macos forbidden). - runs-on: macos-13 + runs-on: lux-build permissions: id-token: write contents: read @@ -63,7 +65,10 @@ jobs: run: | # CLI expects: node-macos-{arch}-{version}.zip containing build/luxd mkdir -p build - 7z a "node-macos-${{ matrix.goarch }}-${TAG}.zip" build/luxd + if ! command -v zip >/dev/null 2>&1; then + sudo apt-get update && sudo apt-get install -y zip + fi + zip "node-macos-${{ matrix.goarch }}-${TAG}.zip" build/luxd env: TAG: ${{ env.TAG }}