name: ci
on:
push:
pull_request:
jobs:
stable:
name: stable (Rust 1.99.0)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build pinned dev image
run: docker compose build dev
- name: Format
run: docker compose run --rm --no-TTY dev cargo fmt --all --check
- name: Clippy
run: docker compose run --rm --no-TTY dev cargo clippy --all-targets --all-features -- -D warnings
- name: Test (all features, replay stack)
run: docker compose run --rm --no-TTY dev cargo test --all-features --locked
- name: Test (default features, permissive-only)
run: docker compose run --rm --no-TTY dev cargo test --locked
- name: Test (no default features)
run: docker compose run --rm --no-TTY dev cargo test --no-default-features --locked
msrv:
name: msrv (Rust 1.89.0)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build pinned msrv image
run: docker compose build msrv
- name: Build on MSRV
run: docker compose run --rm --no-TTY msrv cargo build --locked --all-features
exact-court:
name: phase 1 exact court
runs-on: ubuntu-latest
needs: stable
steps:
- uses: actions/checkout@v4
- name: Build pinned dev image
run: docker compose build dev
- name: Run exact court
run: docker compose run --rm --no-TTY dev sh tools/phase1-court.sh
policy:
name: dependency policy (audit + deny)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build pinned policy image
run: docker compose build policy
- name: cargo audit
run: docker compose run --rm --no-TTY policy cargo audit
- name: cargo deny
run: docker compose run --rm --no-TTY policy cargo deny check