Skip to content

ci: add bun-windows-x64 to release matrix#181

Open
adamv99-eng wants to merge 1 commit intogarrytan:masterfrom
adamv99-eng:ci/release-windows-binary
Open

ci: add bun-windows-x64 to release matrix#181
adamv99-eng wants to merge 1 commit intogarrytan:masterfrom
adamv99-eng:ci/release-windows-binary

Conversation

@adamv99-eng
Copy link
Copy Markdown

Summary

Add bun-windows-x64 to the release build matrix so tagged releases publish gbrain-windows-x64.exe alongside the Mac and Linux artifacts. Windows users currently have no upgrade path — gbrain upgrade on a binary install sends people to the Releases page, which has no Windows download. They either rebuild from source locally on every bump or stay stuck on whatever version they first compiled.

Why this matters:
The npm name gbrain is already taken (by an unrelated ML library, stormcolor/gbrain@1.3.1), so bun install -g gbrain isn't an option for Windows users either. Without a CI-published .exe, Windows has no supported install path at all. This PR closes that gap with one matrix entry.

Changes

  • .github/workflows/release.yml — add Windows to the build matrix:
    • New ext column on the matrix so the shared --outfile / upload-artifact path pattern works: empty on macOS/Linux, .exe on Windows.
    • Add artifacts/gbrain-windows-x64/gbrain-windows-x64.exe to the release files list so the artifact lands on the Releases page.
  • package.json — extend build:all with the Windows target so bun run build:all matches CI and local devs get parity.

Dependency

Depends on the companion PR that fixes Bun's --compile asset embedding for PGLite. Without that fix, the Windows .exe compiles successfully (verified locally: 114 MB binary produced on windows-latest-equivalent), but crashes at runtime on the first PGLite command with Extension bundle not found. Same crash happens on Mac and Linux today — it just hasn't been felt because the binary test loop is light. Merge that PR first, then this one.

Test plan

  • Verified locally: bun build --compile --target=bun-windows-x64 --outfile bin/gbrain-windows-x64.exe src/cli.ts succeeds (887 modules bundled, ~114 MB output).
  • YAML lints cleanly, matrix expansion covers all three os / target / artifact / ext combinations.
  • CI run on a tag push, validating all three artifacts land in the release.

🤖 Generated with Claude Code

Produce a gbrain-windows-x64.exe on every tagged release so Windows
users get an upgrade path. Currently `gbrain upgrade` on a binary
install sends people to the Releases page, which has no Windows
artifact. They either build locally or stay stuck on whatever version
they first compiled.

The matrix gains a per-target `ext` column so the same `--outfile` /
upload-path pattern works everywhere: empty on macOS/Linux, `.exe` on
Windows. `build:all` in package.json picks up the same third target so
local parity matches CI.

Depends on the compiled-binary asset-embedding fix (separate PR) for
the produced .exe to actually run — without it PGLite startup crashes
on every platform, not just Windows. The compile step itself succeeds
regardless.
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.

1 participant