fix release pipeline: vendored cava source, fftw in CI, runner arch, smoke test

- Vendor cava/cavacore.c + header (MIT, from karlstav/cava) — the FFI build
  referenced cava/cavacore.c which was never committed, so every CI runner
  failed at scripts/build-cavacore.sh and no release was possible.
- build-cavacore.sh: discover libfftw3.a across Homebrew and Debian/Ubuntu
  multiarch paths (FFTW_PREFIX override preserved).
- release.yml: install fftw before building cavacore; run the boot smoke test
  from a bunfig-free dir (the embedded runtime reads the CWD bunfig.toml and
  this repo's preload entry breaks it — 'preload not found'); use
  macos-15-intel for darwin-x64 (macos-latest is arm64).
- Makefile/build.ts: drop the no-op BUN_CONFIG=bunfig.standalone.toml compile
  dance (Bun never honored it; compile output is config-independent); delete
  bunfig.standalone.toml.
This commit is contained in:
2026-08-07 14:27:35 -04:00
parent 25fe7f6ac9
commit c9e3aa92ec
8 changed files with 828 additions and 45 deletions

View File

@@ -47,18 +47,19 @@ native:
scripts/build-cavacore.sh
## Standalone binary + native-libs tarball for the current platform.
## Compiles against an empty bunfig so the binary does not bake the
## @opentui/solid/preload entry (which would break the compiled executable).
## Unaffected by bunfig.toml at build time. Note: the compiled runtime reads
## the launching process's CWD bunfig.toml, so smoke tests must run the binary
## from a bunfig-free dir (see release.yml).
dist:
BUN_CONFIG=bunfig.standalone.toml bun run build.ts --compile
bun run build.ts --compile
## macOS build (run on a macOS runner / host).
dist-mac:
BUN_CONFIG=bunfig.standalone.toml bun run build.ts --compile
bun run build.ts --compile
## Linux build (run on a Linux runner / host).
dist-linux:
BUN_CONFIG=bunfig.standalone.toml bun run build.ts --compile
bun run build.ts --compile
## Remove build artifacts.
clean: