# vyre-conform CI
This document describes the continuous integration pipeline for `vyre-conform`.
## What Runs
The `vyre-conform` CI is defined in `.github/workflows/conform.yml`. It triggers on every push and pull request that touches:
- `conform/`
- `core/`
- `spec/`
- Workspace `Cargo.toml` / `Cargo.lock`
- `.github/workflows/conform.yml`
### Jobs (all run in parallel on `ubuntu-latest`)
| `check` | `cargo check -p vyre-conform --offline` | Compiles without errors or warnings |
| `test` | `cargo test -p vyre-conform --offline` | All tests pass |
| `clippy` | `cargo clippy -p vyre-conform --offline -- -D warnings` | No clippy warnings |
| `fmt` | `cargo fmt -p vyre-conform -- --check` | No formatting drift |
| `doctest` | `cargo test --doc -p vyre-conform --offline` | All doc-tests pass |
| `coverage` | Runs `conform/scripts/coverage.sh` if it exists | Script exits 0 |
| `fuzz-smoke` | If `conform/fuzz/` exists, runs each fuzz target for 30 seconds | No crashes |
| `loom` | If `conform/tests/loom_*.rs` exist, runs with `RUSTFLAGS='--cfg loom'` | All loom tests pass |
| `bench-compare` | If `conform/benches/` exists, compares PR against base branch | Benchmarks run without panic |
## Green CI
A push/PR is considered **green** only when **all jobs succeed**. If any job fails, the claim of conformance is invalid.
## Reproducing Locally
All commands assume the workspace root (`libs/performance/matching/vyre`, the parent of this `conform/` directory).
```bash
# check
RUSTFLAGS='-D warnings' cargo check -p vyre-conform --offline
# test
RUSTFLAGS='-D warnings' cargo test -p vyre-conform --offline
# clippy
cargo clippy -p vyre-conform --offline -- -D warnings
# format
cargo fmt -p vyre-conform -- --check
# doctest
cargo test --doc -p vyre-conform --offline
# coverage (if script exists)
./conform/scripts/coverage.sh
# fuzz-smoke (if conform/fuzz/ exists)
cd conform/fuzz
cargo +nightly fuzz run <TARGET> -- -max_total_time=30
# loom (if loom tests exist)
RUSTFLAGS='--cfg loom' cargo test -p vyre-conform --tests
# bench-compare (if conform/benches/ exists)
cargo bench -p vyre-conform -- --noplot
```