ci(release): drop macOS Intel (bun-darwin-x64) from binary matrix

macos-13 runners are too scarce — the darwin-x64 leg sat queued for hours
and blocked the release publish job (which needs all build legs). Ship the
CLI Apple-Silicon-only for macOS; desktop macOS DMG/ZIP stays universal.
Removed from release.yml + test-release.yml matrices, updated ci-workflow
assertions (5→4 targets) and RELEASING.md.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
gsxdsm
2026-05-30 10:06:51 -07:00
parent eeedb8153e
commit cf95d3636f
5 changed files with 16 additions and 14 deletions

View File

@@ -15,3 +15,4 @@ Fix the Binary Release workflow so platform binaries publish to GitHub Releases
- The `build-exe-cross` tests that cross-compile platform binaries are now opt-in (`FUSION_TEST_BUILD_EXE=1`) instead of auto-running on every CI run; native per-platform binary builds remain covered by `test-release.yml`.
- A workflow_dispatch run now builds and uploads binaries as artifacts for validation without creating a release (release creation is gated to tag pushes).
- The dependency-graph plugin build uses a cross-platform copy step that no longer breaks the Windows desktop build.
- The macOS Intel (`bun-darwin-x64`) CLI binary is no longer built/shipped — `macos-13` runners are too scarce to build reliably and were blocking releases. The macOS CLI is now Apple-Silicon-only; the desktop macOS DMG/ZIP remains universal.

View File

@@ -43,9 +43,9 @@ jobs:
- os: macos-latest
target: bun-darwin-arm64
binary: fn-darwin-arm64
- os: macos-13
target: bun-darwin-x64
binary: fn-darwin-x64
# bun-darwin-x64 (Intel) dropped: macos-13 runners are scarce and
# blocked releases by sitting queued for hours. The CLI ships
# Apple-Silicon-only for macOS; desktop macOS DMG/ZIP is universal.
- os: windows-latest
target: bun-windows-x64
binary: fn-windows-x64.exe

View File

@@ -26,9 +26,8 @@ jobs:
- os: macos-latest
target: bun-darwin-arm64
binary: fn-darwin-arm64
- os: macos-13
target: bun-darwin-x64
binary: fn-darwin-x64
# bun-darwin-x64 (Intel) dropped: macos-13 runner scarcity — CLI is
# Apple-Silicon-only for macOS. Keep in sync with release.yml.
- os: windows-latest
target: bun-windows-x64
binary: fn-windows-x64.exe

View File

@@ -56,9 +56,10 @@ When you merge the Version Packages PR:
|----------|------------|--------|
| Linux x64 | `fusion-linux-x64` | — |
| macOS arm64 | `fusion-darwin-arm64` | ✓ (codesign + notarization) |
| macOS x64 | `fusion-darwin-x64` | ✓ (codesign + notarization) |
| Windows x64 | `fusion-windows-x64.exe` | ✓ (Authenticode) |
> macOS Intel (`darwin-x64`) is intentionally not shipped: the CLI is Apple-Silicon-only because `macos-13` GitHub runners are too scarce to build reliably. The desktop macOS DMG/ZIP remains universal.
## Testing binary builds
Use the **Test Release** workflow (`test-release.yml`) to manually test binary builds without creating a real release:

View File

@@ -329,15 +329,16 @@ describe("Binary release workflow (.github/workflows/release.yml)", () => {
expect(workflow.on.push.tags).toContain("v*");
});
it("has build-binaries job with 5-target matrix", () => {
it("has build-binaries job with 4-target matrix", () => {
const matrix = workflow.jobs["build-binaries"].strategy.matrix.include;
expect(matrix).toHaveLength(5);
expect(matrix).toHaveLength(4);
const targets = matrix.map((m: any) => m.target);
expect(targets).toContain("bun-linux-x64");
expect(targets).toContain("bun-linux-arm64");
expect(targets).toContain("bun-darwin-arm64");
expect(targets).toContain("bun-darwin-x64");
expect(targets).toContain("bun-windows-x64");
// bun-darwin-x64 dropped: macos-13 runner scarcity; CLI is Apple-Silicon-only.
expect(targets).not.toContain("bun-darwin-x64");
});
it("has correct OS runners for each target", () => {
@@ -347,7 +348,6 @@ describe("Binary release workflow (.github/workflows/release.yml)", () => {
expect(osMap["bun-linux-x64"]).toBe("ubuntu-latest");
expect(osMap["bun-linux-arm64"]).toBe("ubuntu-24.04-arm");
expect(osMap["bun-darwin-arm64"]).toBe("macos-latest");
expect(osMap["bun-darwin-x64"]).toBe("macos-13");
expect(osMap["bun-windows-x64"]).toBe("windows-latest");
});
@@ -427,15 +427,16 @@ describe("Test-release workflow (.github/workflows/test-release.yml)", () => {
expect(workflow.on).toHaveProperty("workflow_dispatch");
});
it("has 5-target build matrix", () => {
it("has 4-target build matrix", () => {
const matrix = workflow.jobs["build-binaries"].strategy.matrix.include;
expect(matrix).toHaveLength(5);
expect(matrix).toHaveLength(4);
const targets = matrix.map((m: any) => m.target);
expect(targets).toContain("bun-linux-x64");
expect(targets).toContain("bun-linux-arm64");
expect(targets).toContain("bun-darwin-arm64");
expect(targets).toContain("bun-darwin-x64");
expect(targets).toContain("bun-windows-x64");
// bun-darwin-x64 dropped: macos-13 runner scarcity; CLI is Apple-Silicon-only.
expect(targets).not.toContain("bun-darwin-x64");
});
it("maps bun-linux-arm64 to fn-linux-arm64 binary name", () => {