mirror of
https://github.com/DeusData/codebase-memory-mcp.git
synced 2026-11-15 13:56:34 +08:00
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>
66 lines
2.7 KiB
YAML
66 lines
2.7 KiB
YAML
# FreeBSD build, INFORMATIONAL ONLY. Builds the headless binary (the C core,
|
|
# no embedded UI) inside a FreeBSD VM with the canonical scripts/build.sh,
|
|
# then checks that the binary starts (--version). The UI build is not run here:
|
|
# its npm dependency tree pulls in onnxruntime-node, which publishes no FreeBSD
|
|
# build, so `npm ci` stops with EBADPLATFORM. The UI bundle itself is
|
|
# platform-independent JavaScript and is built on every other leg.
|
|
#
|
|
# NON-GATING: workflow_dispatch only. This workflow is not part of the ci-ok
|
|
# aggregate and is not called by release.yml or dry-run.yml, so a FreeBSD red
|
|
# never blocks a pull request or a release. Nothing from it is uploaded or
|
|
# published, and it runs with read-only permissions.
|
|
name: FreeBSD build (informational)
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
build-freebsd:
|
|
name: build (freebsd-${{ matrix.release }}, ${{ matrix.arch }}, clang)
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
release: ['15.1', '14.4']
|
|
arch: ['x86_64']
|
|
# arch: ['x86_64', 'aarch64']
|
|
# aarch64 is disabled for now: it has not been proven with this
|
|
# workflow. Its earlier blocker was the frontend build (lightningcss
|
|
# publishes no freebsd-arm64 binary), which this headless job no
|
|
# longer runs. Re-enable after a green aarch64 proof run.
|
|
include:
|
|
- arch: x86_64
|
|
sync: rsync
|
|
# - arch: aarch64
|
|
# sync: scp
|
|
# Must be an x86_64 host (ubuntu-latest). QEMU guest emulation on the arm
|
|
# runners (ubuntu-*-arm) degrades so badly that runs hit 3+ hour timeouts.
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 90
|
|
steps:
|
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
with:
|
|
persist-credentials: false
|
|
|
|
- name: Build and run inside a FreeBSD ${{ matrix.release }} (${{ matrix.arch }}) VM
|
|
# https://github.com/vmactions/freebsd-vm
|
|
uses: vmactions/freebsd-vm@c46abacb49f09938ca4e1702d15d836285d694cc # v1.5.9
|
|
with:
|
|
release: ${{ matrix.release }}
|
|
arch: ${{ matrix.arch }}
|
|
# Sync options: rsync, sshfs, nfs, scp
|
|
sync: ${{ matrix.sync }}
|
|
# Nothing from the VM is used after the run, so skip the copy back.
|
|
copyback: false
|
|
mem: 6144
|
|
cpu: 4
|
|
prepare: |
|
|
pkg update -f
|
|
pkg install -y gmake sqlite3 pkgconf bash
|
|
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
|
|
run: |
|
|
scripts/build.sh CC=clang CXX=clang++
|
|
build/c/codebase-memory-mcp --version
|