Files
searchi/docs/BUILDING.md
T
karl a9b6592330
Core CI / core (ubuntu-latest) (push) Failing after 1m22s
Core CI / core (macos-latest) (push) Canceled after 0s
Core CI / core (windows-latest) (push) Canceled after 0s
Core CI / desktop (ubuntu-latest) (push) Successful in 3m46s
Core CI / desktop (macos-latest) (push) Canceled after 0s
Core CI / desktop (windows-latest) (push) Canceled after 0s
feat: add desktop document search and verified native CPU embeddings
2026-10-12 16:07:53 +02:00

1.9 KiB

Build and release targets

Install stable Rust, Node 22+, and native Tauri development prerequisites. On Windows install Visual Studio C++ build tools and WebView2. Linux needs WebKitGTK 4.1 development libraries. macOS needs Xcode command-line tools. See https://v2.tauri.app/start/prerequisites/ for platform details.

cargo test --workspace --locked
cd apps/desktop
npm ci
npm run build
# Windows VM: all rendering and inference tests must use CPU.
$env:WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS='--disable-gpu'
npm run tauri -- dev

The desktop is a standalone Cargo workspace; validate it separately:

cargo test --manifest-path apps/desktop/src-tauri/Cargo.toml --locked

Cross-compilation

The Rust engine has no GUI dependency. Add the destination Rust target with rustup target add TARGET, then use cargo build -p searchi-cli --target TARGET. This requires the target linker, C toolchain and SDK because SQLite is compiled from bundled C. Target installation alone is insufficient. Document each verified host/target pair before treating it as supported.

Desktop builds also need the platform webview libraries and packaging tools. Use native runners for dependable release builds. macOS signing/notarization needs Apple credentials and tooling. Windows installer cross-builds have additional Tauri caveats: https://v2.tauri.app/distribute/windows-installer/.

CI and packaging gates

Both Gitea and GitHub workflow files are provided. Gitea needs registered runners matching the configured OS labels; this repository does not provision runners. No Linux/macOS checks are considered passed until actual job evidence exists.

Current bundles are disabled during development. Enable installers only after packaging icons, native smoke tests, CPU model distribution and license review, upgrade/migration tests, signatures and rollback checks are ready. Do not place private signing keys, repository tokens or model credentials in source control.