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.