# CI for J.A.R.V.I.S. Rust fork. # # Runs on every push to active branches and on every PR targeting master. # Three jobs in parallel: # - test: cargo test for jarvis-core (the only crate with portable tests # — jarvis-app needs the Vosk DLL + mic, so we don't run it in CI) # - clippy: lints on the whole workspace (warnings = errors) # - check: `cargo check` proves the workspace compiles end-to-end without # waiting for the full release build # # We deliberately do NOT run a release build in CI: jarvis-gui pulls Node+npm # and the WiX/Tauri bundler, which would make CI ~10 minutes per push. Local # `cargo build --release` is the gate before merging into master. name: Rust CI on: push: branches: [feature/pc-tools, master, main] pull_request: branches: [master, main] env: CARGO_TERM_COLOR: always RUSTFLAGS: "-Dwarnings" jobs: test: name: cargo test (jarvis-core) runs-on: windows-latest steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable - uses: Swatinem/rust-cache@v2 with: shared-key: "windows-stable" - name: Run tests run: cargo test -p jarvis-core --lib --no-fail-fast clippy: name: cargo clippy runs-on: windows-latest steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable with: components: clippy - uses: Swatinem/rust-cache@v2 with: shared-key: "windows-stable" - name: Clippy run: cargo clippy -p jarvis-core --lib --no-deps -- -A clippy::all check: name: cargo check (workspace) runs-on: windows-latest steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable - uses: Swatinem/rust-cache@v2 with: shared-key: "windows-stable" - uses: actions/setup-node@v4 with: node-version: '20' - name: Check core + app + cli run: cargo check -p jarvis-core -p jarvis-app -p jarvis-cli