arch-audit v0.6.x — checkpoint: Batches A→E landed (61 commits) #87
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: ci | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| concurrency: | |
| group: ci-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| build: | |
| name: just ci (${{ matrix.os }}) | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macos-latest, windows-latest] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: clippy, rustfmt | |
| - uses: Swatinem/rust-cache@v2 | |
| - uses: taiki-e/install-action@just | |
| # WHY: `just ci` runs `cargo deny check`, `typos`, and | |
| # `cargo nextest run`. All three are external binaries — none ship | |
| # with the Rust toolchain. Using taiki-e/install-action fetches | |
| # prebuilt binaries (seconds) rather than `cargo install` (minutes), | |
| # which matters on the 3-OS matrix. Nextest swap landed in commit | |
| # adopting `cargo nextest run` workspace-wide (closes #121) — the | |
| # SQLite lock-order inversion that `cargo test` reproduces ~20% is | |
| # documented in CLAUDE.md + GH #131. | |
| - uses: taiki-e/install-action@cargo-deny | |
| - uses: taiki-e/install-action@typos | |
| - uses: taiki-e/install-action@cargo-nextest | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: '22.12' | |
| - uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: latest | |
| # WHY: Tauri v2 (crates/desktop) requires GTK3 + WebKit2GTK on | |
| # Linux. Without these, cargo build/clippy/test on the workspace | |
| # fails because tauri-build links against native libs. | |
| - name: Install Tauri Linux deps | |
| if: runner.os == 'Linux' | |
| run: | | |
| sudo apt-get update -q | |
| sudo apt-get install -yq \ | |
| libgtk-3-dev \ | |
| libwebkit2gtk-4.1-dev \ | |
| libappindicator3-dev \ | |
| librsvg2-dev \ | |
| patchelf | |
| - name: Run just ci | |
| shell: bash | |
| run: just ci | |
| bindings-drift: | |
| name: bindings.ts drift check | |
| runs-on: ubuntu-latest | |
| needs: build | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| - uses: taiki-e/install-action@just | |
| # WHY: same Tauri Linux deps as the matrix job's Linux branch — | |
| # tauri-build links against GTK3 + WebKit2GTK on Linux. | |
| - name: Install Tauri Linux deps | |
| run: | | |
| sudo apt-get update -q | |
| sudo apt-get install -yq \ | |
| libgtk-3-dev \ | |
| libwebkit2gtk-4.1-dev \ | |
| libappindicator3-dev \ | |
| librsvg2-dev \ | |
| patchelf | |
| # WHY: regenerate bindings.ts via the specta-export feature and | |
| # fail the job if `git diff` shows the committed copy is stale. | |
| # Catches every Rust-side change to a #[tauri::command] signature, | |
| # a specta-derived type, or a CoreError variant that wasn't paired | |
| # with a bindings.ts commit. | |
| - name: Bindings drift check | |
| run: just bindings |