name: ci on: push: branches: [main] pull_request: jobs: check: runs-on: docker container: image: rust:1.97 steps: - uses: actions/checkout@v4 - run: rustup component add rustfmt clippy - run: cargo fmt --all --check - run: cargo clippy --workspace --all-targets -- -D warnings # The shipped runtime is a distinct configuration (AM-4a); it must # compile and lint on its own, or the feature split rots. - run: cargo clippy -p games-ground --no-default-features -- -D warnings - run: cargo test --workspace # No `|| test $? -eq 2`: cb-sim now fails on an unregistered game # prefix and on a run that executed nothing. A silent skip is the # failure this step exists to catch. - run: cargo run -q -p cb-sim -- scenarios/ground/*.yaml # AM-1: every numbered GR-rule is claimed by a scenario, and no # scenario claims a rule the spec does not define. - run: make coverage # AM-4a/AM-4b: third-party source under audit, per configuration. - run: make dep-weight # Positive control for the cost collector (AC-5..AC-9). Does not # gate on a dollar figure — transcripts are not present in CI — but # proves the collector still detects the failures it claims to. - run: make self-tests # InnerLoop rules made executable (CB-WP-0003 T01). Fails on an # overlong artifact, a survey missing its tier/chaos declaration, an # approved tier-L survey with no review trail, `unmeasured` in an # evidence table, or a reporting tool with no --self-test. - run: make loop-lint # InnerLoop v1.0 positive control, enforced rather than asserted in # prose: --test runs every benchmark once, so a workload that # stalls or produces the wrong event count fails the build instead # of silently reporting throughput for work that never happened. - run: cargo bench -p games-ground --bench synthetic -- --test