name: CI on: push: branches: [main] pull_request: workflow_dispatch: concurrency: group: ci-${{ github.ref }} cancel-in-progress: true jobs: check: # windows-latest to match the release target — the ML crates (ort, candle) # and the NSIS bundle only ever ship from Windows. runs-on: windows-latest steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 with: version: 11 - uses: actions/setup-node@v4 with: node-version: 22 cache: pnpm - name: Install frontend dependencies run: pnpm install --frozen-lockfile # tsc + vite build; also produces dist/ which tauri's build script expects - name: Type-check and build frontend run: pnpm build:vite - name: Install Rust stable uses: dtolnay/rust-toolchain@stable with: components: clippy, rustfmt - uses: Swatinem/rust-cache@v2 with: workspaces: src-tauri - name: Rustfmt working-directory: src-tauri run: cargo fmt --check # --no-default-features: default enables candle-cuda for the main dev # machine; CI runners have no CUDA toolkit and must build CPU-only. - name: Clippy working-directory: src-tauri run: cargo clippy --all-targets --locked --no-default-features