From e94a986400297926e5d25e7b9e8244fb37159141 Mon Sep 17 00:00:00 2001 From: subencheng Date: Thu, 24 Sep 2026 10:38:55 -0700 Subject: [PATCH 1/2] Benchmark macOS release builds on macos-26-arm64 with -p 4 Pin the binaries job to the macos-26-arm64 label instead of macos-latest, pass --parallelism 4 to GoReleaser so all four darwin/linux targets build concurrently regardless of the semaphore GOMAXPROCS would pick, and log the runner hardware up front so the observed core count is recorded rather than inferred. Co-Authored-By: Claude Opus 5 (1M context) --- .github/workflows/release.yaml | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 3225ddb..db362b1 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -303,7 +303,7 @@ jobs: goreleaser-binaries: needs: [determine-workflows-ref, release-preflight] - runs-on: macos-latest + runs-on: macos-26-arm64 permissions: contents: read id-token: write # <-- needed for cosign keyless (OIDC) @@ -313,6 +313,18 @@ jobs: binaries_checksums: ${{ steps.output-checksums.outputs.checksums }} released_at: ${{ steps.release-meta.outputs.released_at }} steps: + # Diagnostic: GoReleaser sizes its build semaphore from runtime.GOMAXPROCS(0), + # so the runner's core count decides how many of the four targets build at once. + # GitHub bills the standard macOS tier as "3-core or 4-core" and one observed + # release did get 4 slots, so record the hardware instead of inferring it. + - name: Report runner hardware + shell: bash + run: | + echo "runner_label=macos-26-arm64" + echo "ncpu=$(sysctl -n hw.ncpu) logical=$(sysctl -n hw.logicalcpu) physical=$(sysctl -n hw.physicalcpu)" + echo "cpu=$(sysctl -n machdep.cpu.brand_string 2>/dev/null || echo unknown)" + echo "mem_bytes=$(sysctl -n hw.memsize)" + - name: Checkout caller repo uses: actions/checkout@v5 with: @@ -422,7 +434,7 @@ jobs: with: workdir: _caller version: "~> v2.13" - args: release --clean --config ../_workflows/_generated/.goreleaser.binaries.yaml + args: release --clean --parallelism 4 --config ../_workflows/_generated/.goreleaser.binaries.yaml env: GITHUB_TOKEN: ${{ secrets.RELENG_GITHUB_TOKEN }} GORELEASER_CURRENT_TAG: ${{ inputs.tag }} From 4e21df394fea2b2418c413314ded5b5883454630 Mon Sep 17 00:00:00 2001 From: subencheng Date: Thu, 24 Sep 2026 11:02:53 -0700 Subject: [PATCH 2/2] Use the macos-26 runner label for the binaries job Co-Authored-By: Claude Opus 5 (1M context) --- .github/workflows/release.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index db362b1..121e5ce 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -303,7 +303,7 @@ jobs: goreleaser-binaries: needs: [determine-workflows-ref, release-preflight] - runs-on: macos-26-arm64 + runs-on: macos-26 permissions: contents: read id-token: write # <-- needed for cosign keyless (OIDC) @@ -320,7 +320,7 @@ jobs: - name: Report runner hardware shell: bash run: | - echo "runner_label=macos-26-arm64" + echo "runner_label=macos-26" echo "ncpu=$(sysctl -n hw.ncpu) logical=$(sysctl -n hw.logicalcpu) physical=$(sysctl -n hw.physicalcpu)" echo "cpu=$(sysctl -n machdep.cpu.brand_string 2>/dev/null || echo unknown)" echo "mem_bytes=$(sysctl -n hw.memsize)"