# Workspace gate: the same clippy + test commands CLAUDE.md §6 requires # locally, run on every master push and pull request. Until this workflow # existed, nothing in CI ran the test suite at all — a direct push to # master (or the web-wasm-rebuild bot commit) was entirely unguarded. name: Test on: push: branches: [master] paths: - 'solitaire_app/**' - 'solitaire_assetgen/**' - 'solitaire_core/**' - 'solitaire_data/**' - 'solitaire_engine/**' - 'solitaire_server/src/**' - 'solitaire_server/tests/**' - 'solitaire_server/migrations/**' - 'solitaire_sync/**' - 'solitaire_wasm/**' - 'solitaire_web/**' - 'Cargo.toml' - 'Cargo.lock' - '.cargo/**' - '.sqlx/**' - '.gitea/workflows/test.yml' pull_request: workflow_dispatch: jobs: test: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Install Rust uses: dtolnay/rust-toolchain@stable with: components: clippy - name: Cache cargo build uses: Swatinem/rust-cache@v2 # SQLX_OFFLINE uses the checked-in `.sqlx/` query cache (no live DB), # same as the web-e2e workflow's server prebuild. - name: Clippy (deny warnings) env: SQLX_OFFLINE: 'true' run: cargo clippy --workspace --all-targets -- -D warnings - name: Test env: SQLX_OFFLINE: 'true' run: cargo test --workspace