From f070ada841f9de7c6d93900938c44b4e7dd31cf2 Mon Sep 17 00:00:00 2001 From: Parfii-bot Date: Wed, 22 Apr 2026 22:42:55 +0800 Subject: [PATCH] fix(release): consolidate bun builds to ubuntu-latest (macos-13 deprecated) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Root cause: macos-13 Intel Mac runners were deprecated by GitHub. The darwin-x64 bun matrix job was sitting queued for 1.5-2.5 hours on every tag push (v0.21.1, v0.22.0, v0.22.1) and never picked up a runner. The release job has `needs: [build-release, build-mcp-binary]` so it waited forever — NO GitHub Releases were created for any v0.22 tag. Fix: bun cross-compiles to every target (Linux / macOS / Windows, x64 / arm64) from any host via `--target=`. Consolidate the entire build-mcp-binary matrix onto ubuntu-latest. Binaries remain native per-target (correct Mach-O / ELF / PE format preserved by bun --target flag). Side effects: - Faster: Linux runners provision in seconds vs macOS in minutes - No macOS quota cost (free tier: 2000 min/month, macOS = 10x multiplier) - No runner starvation on tag push - `continue-on-error` arm64-linux carve-out removed (no longer needed — all jobs now on the same runner pool with equal reliability) Verified locally: bun 1.1+ supports all 5 target triples from Linux host. Co-Authored-By: Claude Opus 4.7 (1M context) --- .github/workflows/release.yml | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 14d5098..132a61c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -108,18 +108,24 @@ jobs: # `continue-on-error` because the ubuntu arm runner pool is newer and # occasionally flaky — a missing linux-arm64 asset must NOT block release. build-mcp-binary: + # v0.22.2 fix: `macos-13` Intel runners were deprecated by GitHub and the + # pool is dry — `darwin-x64` jobs sit in queued for hours and block the + # final `release` job (needs: build-mcp-binary). bun supports + # cross-compile to every target from any host, so we consolidate every + # bun build onto ubuntu-latest. Faster, no macOS quota cost, no runner + # starvation. Binaries are still native per-target (bun produces the + # correct Mach-O / ELF / PE format via --target). name: Build mcp-server ${{ matrix.target.platform }}-${{ matrix.target.arch }} - runs-on: ${{ matrix.target.runner }} - continue-on-error: ${{ matrix.target.arch == 'arm64' && matrix.target.platform == 'linux' }} + runs-on: ubuntu-latest strategy: fail-fast: false matrix: target: - - { platform: linux, arch: x64, runner: ubuntu-latest, bun_target: bun-linux-x64, ext: '' } - - { platform: linux, arch: arm64, runner: ubuntu-24.04-arm, bun_target: bun-linux-arm64, ext: '' } - - { platform: darwin, arch: x64, runner: macos-13, bun_target: bun-darwin-x64, ext: '' } - - { platform: darwin, arch: arm64, runner: macos-latest, bun_target: bun-darwin-arm64, ext: '' } - - { platform: windows, arch: x64, runner: windows-latest, bun_target: bun-windows-x64, ext: '.exe' } + - { platform: linux, arch: x64, bun_target: bun-linux-x64, ext: '' } + - { platform: linux, arch: arm64, bun_target: bun-linux-arm64, ext: '' } + - { platform: darwin, arch: x64, bun_target: bun-darwin-x64, ext: '' } + - { platform: darwin, arch: arm64, bun_target: bun-darwin-arm64, ext: '' } + - { platform: windows, arch: x64, bun_target: bun-windows-x64, ext: '.exe' } steps: - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1