name: CI on: push: branches: [main] pull_request: jobs: frontend: runs-on: ubuntu-latest defaults: run: working-directory: frontend steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 22 cache: npm cache-dependency-path: frontend/package-lock.json - run: npm ci - name: Type-check run: npm run check - name: Lint run: npm run lint - name: Test run: npm test - name: Build run: npm run build backend: runs-on: ubuntu-latest defaults: run: working-directory: backend steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable with: components: rustfmt, clippy - uses: Swatinem/rust-cache@v2 with: workspaces: backend - name: Format run: cargo fmt --check - name: Clippy # Warnings are surfaced but not yet gating — ratchet to `-D warnings` # once the existing ~10 style lints are cleared. run: cargo clippy --all-targets - name: Test run: cargo test