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:
@@ -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.
|
||||
|
||||
6
.github/workflows/release.yml
vendored
6
.github/workflows/release.yml
vendored
@@ -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
|
||||
|
||||
5
.github/workflows/test-release.yml
vendored
5
.github/workflows/test-release.yml
vendored
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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", () => {
|
||||
|
||||
Reference in New Issue
Block a user