1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
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
targets: wasm32-unknown-unknown
- run: cargo fmt --check
- run: cargo clippy --workspace --all-targets -- -D warnings
- run: cargo test --workspace
- run: cargo check --workspace --target wasm32-unknown-unknown
- run: bash scripts/caps.sh
# experiment/ is NOT a workspace member (it takes deps — rules 1+5 keep them
# out of the kit's graph), so every gate above is blind to it and it would
# rot silently. Gated here instead. NATIVE only, never wasm32: its deps are
# exactly why it cannot be in the graph the wasm gate walks.
experiment:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy
- run: cargo fmt --manifest-path experiment/Cargo.toml --check
- run: cargo clippy --manifest-path experiment/Cargo.toml --all-targets -- -D warnings
- run: cargo test --manifest-path experiment/Cargo.toml
# proofbench = the N=2 (prooflite) reward tool; its own workspace.
- run: cargo fmt --manifest-path experiment/proofbench/Cargo.toml --check
- run: cargo clippy --manifest-path experiment/proofbench/Cargo.toml --all-targets -- -D warnings
- run: cargo test --manifest-path experiment/proofbench/Cargo.toml
# The M6 trainer's torch loop needs a GPU and is NOT run here — but its
# anti-collapse guards (admission.py) are stdlib-only and load-bearing, so they
# are byte-compiled and TESTED on every push. No torch installed.
trainer:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.13"
- run: python -m py_compile experiment/train/*.py
- run: python experiment/train/test_select.py
# `rust-version = "1.85"` is a PUBLISHED promise. Unverified, it rots the
# first time someone uses a newer std method — and the rot only surfaces in
# a downstream build. Make the claim mechanical, like every other one here.
msrv:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- id: msrv
run: |
v=$(grep -m1 '^rust-version = ' Cargo.toml | cut -d'"' -f2)
echo "version=$v" >> "$GITHUB_OUTPUT"
echo "workspace claims MSRV $v"
- uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ steps.msrv.outputs.version }}
- run: cargo check --workspace --all-targets