Repository navigation
67 lines (59 loc) · 2.86 KB
/
Copy pathjc-proof.yml
File metadata and controls
67 lines (59 loc) · 2.86 KB
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
name: JC Substrate Proof
on:
push:
branches:
- main
pull_request:
paths:
- crates/jc/**
- crates/lance-graph-contract/src/cam.rs
# The DAV probe below runs these two contract modules end to end.
- crates/lance-graph-contract/src/revision.rs
- crates/lance-graph-contract/src/sigma_propagation.rs
- .github/workflows/jc-proof.yml
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
env:
CARGO_TERM_COLOR: always
jobs:
prove:
name: Five-Pillar Substrate Proof
runs-on: ubuntu-24.04
timeout-minutes: 10
steps:
- uses: actions/checkout@v4
- name: Clone AdaWorldAPI/OGAR as parent-level sibling (NO-PIN path deps)
run: git clone --depth 1 https://github.com/AdaWorldAPI/OGAR ../OGAR
- name: Clone AdaWorldAPI/ndarray as parent-level sibling (NO-PIN path deps)
# The `substrate_compare` example dev-deps `p64` (ndarray/crates/p64) for
# the real compute arm; production JC stays zero-dep. Sibling-clone so the
# path resolves in CI, matching the OGAR pattern above.
run: git clone --depth 1 https://github.com/AdaWorldAPI/ndarray ../ndarray
- name: Setup Rust
run: |
# Pinned by rust-toolchain.toml — never a version restated here.
rustup show
- name: Run JC tests (6 unit tests)
run: cargo test --manifest-path crates/jc/Cargo.toml
# jc is workspace-excluded, so the root clippy job never reaches it; it
# went red unnoticed until TD-JC-CLIPPY-RED-ON-BASE-1 (2026-09-05). Same
# arming as sigker in rust-test.yml: fix once, then gate it here.
- name: Lint JC (workspace-excluded, so root clippy never reaches it)
run: |
cargo clippy --manifest-path crates/jc/Cargo.toml \
--all-targets -- -D warnings
- name: Run prove_it (substrate proof binary)
run: |
cargo run --manifest-path crates/jc/Cargo.toml --release --example prove_it
echo "Exit code: $?"
- name: Run substrate_compare (on-demand P64-vs-V3 gap analysis; KILL gates)
# `cargo test` compiles examples but never RUNS their runtime gates, so
# execute the comparison here — it exits non-zero if the asymmetry (V3
# absorbs P64 at 0 new bytes vs P64 replicates V3 at 32) fails to certify.
run: cargo run --manifest-path crates/jc/Cargo.toml --example substrate_compare
- name: Run dav_active_observation_probe (EWA -> disagreement -> revision -> replay)
# Its falsifiers are runtime asserts in `main`, so they only count if
# something runs it. Exits non-zero if revision stops being the only
# way an observation enters, or replay stops collapsing the hole.
run: cargo run --manifest-path crates/jc/Cargo.toml --example dav_active_observation_probe