name: CI on: push: branches: ["*"] pull_request: jobs: ci: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable with: components: rustfmt, clippy - uses: actions/cache@v4 with: path: | ~/.cargo/registry ~/.cargo/git target key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - uses: oven-sh/setup-bun@v2 - name: Build frontend run: cd painter-js && bun install --frozen-lockfile && bun run build - name: Check formatting run: | cargo fmt --all -- --check cd painter-js && bun run fmt:check - name: Clippy run: cargo clippy --workspace -- -D warnings - name: Tests run: cargo test --workspace