Skip to content

Commit f13c847

Browse files
committed
ci(freebsd): build the headless binary in the FreeBSD VM
The first proof run failed in both FreeBSD legs at `npm ci`: the UI dependency tree pulls in onnxruntime-node, which publishes builds for win32, darwin and linux only, so npm stops with EBADPLATFORM before the frontend is built. The VM boot, the pkg prepare step, the gmake detection and the source sync all worked. The job now builds the headless binary (scripts/build.sh without --with-ui) and drops node22/npm-node22 from the prepare step. That still proves the C core builds and starts on FreeBSD; the UI bundle is platform-independent JavaScript and is built on every other leg. The aarch64 comment now says what is actually unproven. Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
1 parent e750c05 commit f13c847

1 file changed

Lines changed: 12 additions & 13 deletions

File tree

‎.github/workflows/freebsd.yml‎

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
1-
# FreeBSD build, INFORMATIONAL ONLY. Builds the UI-embedded binary (the one
2-
# every platform ships) inside a FreeBSD VM with the canonical scripts/build.sh,
3-
# then checks that the binary starts (--version).
1+
# FreeBSD build, INFORMATIONAL ONLY. Builds the headless binary (the C core,
2+
# no embedded UI) inside a FreeBSD VM with the canonical scripts/build.sh,
3+
# then checks that the binary starts (--version). The UI build is not run here:
4+
# its npm dependency tree pulls in onnxruntime-node, which publishes no FreeBSD
5+
# build, so `npm ci` stops with EBADPLATFORM. The UI bundle itself is
6+
# platform-independent JavaScript and is built on every other leg.
47
#
58
# NON-GATING: workflow_dispatch only. This workflow is not part of the ci-ok
69
# aggregate and is not called by release.yml or dry-run.yml, so a FreeBSD red
@@ -23,14 +26,10 @@ jobs:
2326
release: ['15.1', '14.4']
2427
arch: ['x86_64']
2528
# arch: ['x86_64', 'aarch64']
26-
# aarch64 is disabled for now: lightningcss (a native Rust dependency
27-
# of the Vite/CSS build) publishes no prebuilt binary for freebsd-arm64,
28-
# so `npm run build` fails with "Cannot find module
29-
# '../lightningcss.freebsd-arm64.node'". That is a gap in the package's
30-
# platform coverage, not something fixable on our side without
31-
# vendoring a Rust build of it. Re-enable once lightningcss ships that
32-
# target, or once the frontend build runs natively on a Linux host
33-
# instead of inside the FreeBSD VM.
29+
# aarch64 is disabled for now: it has not been proven with this
30+
# workflow. Its earlier blocker was the frontend build (lightningcss
31+
# publishes no freebsd-arm64 binary), which this headless job no
32+
# longer runs. Re-enable after a green aarch64 proof run.
3433
include:
3534
- arch: x86_64
3635
sync: rsync
@@ -59,8 +58,8 @@ jobs:
5958
cpu: 4
6059
prepare: |
6160
pkg update -f
62-
pkg install -y gmake sqlite3 pkgconf node22 npm-node22 bash
61+
pkg install -y gmake sqlite3 pkgconf bash
6362
which python3 >/dev/null 2>&1 || ln -sf $(which python3.15 python3.14 python3.13 python3.12 python3.11 python3.10 2>/dev/null | head -n 1) /usr/local/bin/python3
6463
run: |
65-
scripts/build.sh --with-ui CC=clang CXX=clang++
64+
scripts/build.sh CC=clang CXX=clang++
6665
build/c/codebase-memory-mcp --version

0 commit comments

Comments
 (0)