name: CI on: push: pull_request: jobs: build: name: build-and-test (test-all.sh) runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - uses: actions/cache@v4 with: path: | ~/.cargo/bin/ ~/.cargo/registry/index/ ~/.cargo/registry/cache/ ~/.cargo/git/db/ target/ key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - name: Setup Rust run: rustup update stable && rustup default stable - name: Install clippy and rustfmt run: rustup component add clippy rustfmt - name: Cargo fmt (check) run: cargo fmt --all -- --check - name: Clippy (default) run: cargo clippy --all-targets -- -D warnings - name: Ensure test-all.sh is executable run: chmod +x ./scripts/test-all.sh - name: Run comprehensive test suite shell: bash run: ./scripts/test-all.sh