Skip to content

ci: pin bun to 1.3.14 for binary cross-compiles - #608

Merged
davidsu merged 1 commit into
mainfrom
ci/pin-bun-binaries
Aug 27, 2026
Merged

ci: pin bun to 1.3.14 for binary cross-compiles#608
davidsu merged 1 commit into
mainfrom
ci/pin-bun-binaries

Conversation

@davidsu

@davidsu davidsu commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

Note

Description

The build job on every open PR is failing because .github/workflows/test.yml used bun-version: latest, which moved from bun 1.3.14 to 1.4.0. bun build --compile --target=... fetches its target executables from npm, and the @oven/bun-* target packages have no 1.4.0 published (latest is 1.3.14), so every cross-compile dies with Network error downloading executable for 'bun-darwin-aarch64-v1.4.0'. This pins bun to an exact 1.3.14 in the only two jobs that cross-compile, restoring green CI and unblocking releases.

Related Issue

Blocker for #607. Upstream cause is a bun publishing gap (@oven/bun-darwin-aarch64 and the other four target packages are missing 1.4.x on npm).

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update
  • Refactoring (no functional changes)
  • Other (please describe): CI/build configuration only — no product code changes

Changes Made

  • .github/workflows/test.yml: pin oven-sh/setup-bun to bun-version: 1.3.14 in the build job (the one that runs bun run build:binaries).
  • .github/workflows/manual-publish.yml: same pin for the publish job, which runs build:binaries + package:binaries.
  • Added an inline comment in both workflows recording the reason and the unpin condition (when @oven/bun-darwin-* publishes 1.4.x to npm).
  • Left every other workflow on latest — lint, typecheck, knip, readme-check, preview-publish and wix-gateway-proxy-check never cross-compile, and test.yml's test job consumes the uploaded dist artifact rather than building it.
  • Used an exact version rather than a range: the failure mode is "this specific version has no target package on npm", floating resolution is what walked CI from 1.3.14 into 1.4.0, and an exact string is greppable for whoever unpins it.

Testing

  • I have tested these changes locally
  • I have added/updated tests as needed
  • All tests pass (npm test)

bun run build passes and bun run test:binary reports 716 passed / 17 skipped across 71 files, so the pin fixes the compile without pushing the failure into the binary tests. No new tests — this is a workflow-configuration change with no code surface to cover. bun run build:binaries itself could not be validated locally (local bun is 1.3.8 and cross-target downloads fail with DEPTH_ZERO_SELF_SIGNED_CERT behind the corp proxy); CI is the real check for that step.

Checklist

  • My code follows the project's style guidelines
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation (if applicable)
  • My changes generate no new warnings
  • I have updated "docs/" (AGENTS.md) if I made architectural changes

Additional Notes

This is a temporary workaround for an upstream gap, not a permanent version policy — the workflows should return to latest once bun publishes 1.4.x target packages to npm. The five affected targets are the ones listed in packages/cli/infra/build-binaries.ts:37-41. GitHub release assets for bun 1.4.0 do exist, but bun build --compile does not fetch from there, so they don't help. The Wix gateway proxy is not implicated; it only pins registry.npmjs.org.


🤖 Generated by Claude | 2026-08-27 10:22 UTC | 0fef264

bun 1.4.0 has no @oven/bun-darwin-aarch64 (or any other target package)
published on npm, so `bun build --compile --target=...` fails to download
the target executable and every `build` job on main goes red.

Pin the two jobs that cross-compile — test.yml's build job and
manual-publish.yml — to 1.3.14, the last version with all five target
packages on npm. Other workflows stay on latest; they never cross-compile.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

🚀 Package Preview Available!


Install this PR's preview build with npm:

npm i @base44-preview/cli@0.1.10-pr.608.09b4b41

Prefer not to change any import paths? Install using npm alias so your code still imports base44:

npm i "base44@npm:@base44-preview/cli@0.1.10-pr.608.09b4b41"

Or add it to your package.json dependencies:

{
  "dependencies": {
    "base44": "npm:@base44-preview/cli@0.1.10-pr.608.09b4b41"
  }
}

Preview published to npm registry — try new features instantly!

@davidsu
davidsu enabled auto-merge (squash) August 27, 2026 10:24
@davidsu
davidsu disabled auto-merge August 27, 2026 10:24
@davidsu
davidsu merged commit 735f44b into main Aug 27, 2026
15 checks passed
@davidsu
davidsu deleted the ci/pin-bun-binaries branch August 27, 2026 10:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants