ui: delete snapshots from the sidebar #16
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: [master] | |
| pull_request: | |
| env: | |
| CARGO_TERM_COLOR: always | |
| RUSTFLAGS: "-D warnings" | |
| jobs: | |
| linux: | |
| name: linux / pipewire | |
| runs-on: ubuntu-latest | |
| container: | |
| image: fedora:41 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install build deps | |
| run: | | |
| dnf install -y \ | |
| gcc gcc-c++ make pkg-config \ | |
| pipewire-devel clang-devel \ | |
| rust cargo | |
| - name: cargo build | |
| run: cargo build --workspace --all-targets | |
| - name: cargo test | |
| run: cargo test --workspace | |
| - name: cargo fmt --check | |
| run: cargo fmt --all -- --check | |
| continue-on-error: true | |
| - name: cargo clippy | |
| run: cargo clippy --workspace --all-targets -- -D warnings | |
| continue-on-error: true | |
| macos: | |
| name: macos / coreaudio | |
| runs-on: macos-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - name: cargo build (excluding linux-only crate) | |
| run: | | |
| cargo build --workspace --all-targets \ | |
| --exclude soundworm-pipewire | |
| - name: cargo test (excluding linux-only crate) | |
| run: | | |
| cargo test --workspace \ | |
| --exclude soundworm-pipewire | |
| fuzz: | |
| name: fuzz / parsers | |
| runs-on: ubuntu-latest | |
| env: | |
| # cargo-fuzz injects its own sanitizer flags; the repo-wide | |
| # -D warnings would deny lints in dependency builds and fail here. | |
| RUSTFLAGS: "" | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@nightly | |
| - uses: taiki-e/install-action@v2 | |
| with: | |
| tool: cargo-fuzz | |
| # Force the gnu target: cargo-fuzz otherwise picks musl on this | |
| # runner, whose static libc is incompatible with the sanitizer | |
| # (and whose std isn't installed). | |
| - name: Fuzz rules TOML parser | |
| run: cargo fuzz run --target x86_64-unknown-linux-gnu rules_toml -- -max_total_time=30 | |
| - name: Fuzz rhai script parser | |
| run: cargo fuzz run --target x86_64-unknown-linux-gnu rhai_script -- -max_total_time=30 -timeout=10 | |
| ui: | |
| name: ui / tauri (build check) | |
| runs-on: ubuntu-latest | |
| # The UI crate is outside the workspace, so the matrix never compiles | |
| # it; this job is the only thing that catches a core API change | |
| # breaking the UI. RUSTFLAGS cleared so Tauri's large dependency tree | |
| # doesn't trip the repo-wide -D warnings (compile errors still fail). | |
| env: | |
| RUSTFLAGS: "" | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| - name: Install Tauri system deps | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y \ | |
| libwebkit2gtk-4.1-dev \ | |
| libjavascriptcoregtk-4.1-dev \ | |
| libsoup-3.0-dev \ | |
| librsvg2-dev \ | |
| libxdo-dev \ | |
| libssl-dev | |
| - name: Build frontend | |
| working-directory: crates/ui/frontend | |
| run: | | |
| npm ci | |
| npm run build | |
| - name: cargo check UI | |
| working-directory: crates/ui | |
| run: cargo check | |
| semver: | |
| name: semver-checks (advisory) | |
| runs-on: ubuntu-latest | |
| # Advisory only: pre-1.0 allows breaking changes and there's no | |
| # crates.io baseline yet, so this reports against the PR base and | |
| # never blocks the merge. | |
| if: github.event_name == 'pull_request' | |
| continue-on-error: true | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - uses: dtolnay/rust-toolchain@nightly | |
| - uses: taiki-e/install-action@v2 | |
| with: | |
| tool: cargo-semver-checks | |
| - name: Public-API diff vs base branch | |
| run: | | |
| cargo semver-checks \ | |
| --baseline-rev "origin/${{ github.base_ref }}" \ | |
| --workspace --exclude soundworm-pipewire | |
| windows: | |
| name: windows / wasapi (stub) | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| # Windows excludes the unix backends *and* the daemon/CLI — their | |
| # IPC transport is unix-socket-only. Named-pipe support lands with | |
| # WASAPI in v0.6. The IPC wire types and other portable crates | |
| # still build here so we catch regressions early. | |
| - name: cargo build (portable crates only) | |
| run: | | |
| cargo build --workspace --all-targets ` | |
| --exclude soundworm-pipewire ` | |
| --exclude soundworm-coreaudio ` | |
| --exclude soundworm-daemon ` | |
| --exclude soundworm-cli | |
| - name: cargo test (portable crates only) | |
| run: | | |
| cargo test --workspace ` | |
| --exclude soundworm-pipewire ` | |
| --exclude soundworm-coreaudio ` | |
| --exclude soundworm-daemon ` | |
| --exclude soundworm-cli |