@@ -27,12 +27,14 @@ jobs:
2727 - name : Setup Rust toolchain, cache and bins
2828 uses : moonrepo/setup-rust@v1
2929 with :
30- channel : nightly-2025-04-05
30+ channel : nightly-2026-03-04
3131 cache-base : main
3232 components : rustfmt, clippy
3333
34+ - name : Clean stale artifacts
35+ run : cargo clean
3436 - name : Build all Rust targets
35- run : cargo build --all-targets --all-features --verbose
37+ run : cargo build --all-targets --all-features --release -- verbose
3638
3739 -
uses :
noir-lang/[email protected] 3840 with :
@@ -43,49 +45,95 @@ jobs:
4345 with :
4446 go-version : 1.24
4547
46- - name : Compile and execute Nargo circuit
47- working-directory : noir-examples/noir-passport-examples/complete_age_check
48+ - name : Compile Nargo circuits
49+ working-directory : noir-examples/noir-passport/merkle_age_check
4850 run : |
49- nargo compile --skip-brillig-constraints-check --force
51+ for circuit in t_add_dsc_720 t_add_id_data_720 t_add_integrity_commit t_attest; do
52+ echo "Compiling $circuit"
53+ nargo compile --force --print-acir --package "$circuit"
54+ echo "Compiled $circuit"
55+ done
56+
57+ - name : Clean stale benchmark artifacts
58+ working-directory : noir-examples/noir-passport/merkle_age_check
59+ run : |
60+ rm -f ./benchmark-inputs/*.pkp ./benchmark-inputs/*.pkv ./benchmark-inputs/*.np
61+ echo "Cleaned stale benchmark artifacts"
62+
63+ - name : Prepare circuits
64+ working-directory : noir-examples/noir-passport/merkle_age_check
65+ run : |
66+ for circuit in t_add_dsc_720 t_add_id_data_720 t_add_integrity_commit t_attest; do
67+ echo "Preparing $circuit"
68+ cargo run --release --bin provekit-cli prepare ./target/$circuit.json \
69+ --pkp ./benchmark-inputs/$circuit-prover.pkp \
70+ --pkv ./benchmark-inputs/$circuit-verifier.pkv
71+ echo "Prepared $circuit"
72+ done
73+
74+ - name : Generate proofs for all circuits
75+ working-directory : noir-examples/noir-passport/merkle_age_check
76+ run : |
77+ for circuit in t_add_dsc_720 t_add_id_data_720 t_add_integrity_commit t_attest; do
78+ echo "Proving $circuit"
79+ cargo run --release --bin provekit-cli prove \
80+ ./benchmark-inputs/$circuit-prover.pkp \
81+ ./benchmark-inputs/tbs_720/$circuit.toml \
82+ -o ./benchmark-inputs/$circuit-proof.np
83+ echo "Proved $circuit"
84+ done
85+
86+ - name : Verify proofs for all circuits
87+ working-directory : noir-examples/noir-passport/merkle_age_check
88+ run : |
89+ for circuit in t_add_dsc_720 t_add_id_data_720 t_add_integrity_commit t_attest; do
90+ echo "Verifying $circuit"
91+ cargo run --release --bin provekit-cli verify \
92+ ./benchmark-inputs/$circuit-verifier.pkv \
93+ ./benchmark-inputs/$circuit-proof.np
94+ echo "Verified $circuit"
95+ done
5096
5197 - name : Generate Gnark inputs
52- working-directory : noir-examples/noir-passport-examples/complete_age_check
98+ working-directory : noir-examples/noir-passport/merkle_age_check
5399 run : |
54- cargo run --release --bin provekit-cli prepare ./target/complete_age_check.json -p ./noir-provekit-prover.pkp -v ./noir-provekit-verifier.pkv
55- cargo run --release --bin provekit-cli prove ./noir-provekit-prover.pkp ./Prover.toml -o ./noir-proof.np
56- cargo run --release --bin provekit-cli generate-gnark-inputs ./noir-provekit-prover.pkp ./noir -proof.np
100+ cargo run --release --bin provekit-cli generate-gnark-inputs \
101+ ./benchmark-inputs/t_attest-verifier.pkv \
102+ ./benchmark-inputs/t_attest -proof.np
57103
58- - name : Run Gnark verifier
59- working-directory : recursive-verifier
60- run : |
61- go build -o gnark-verifier cmd/cli/main.go
62-
63- # Set up cleanup trap
64- cleanup() {
65- if [ ! -z "$MONITOR_PID" ]; then
66- kill $MONITOR_PID 2>/dev/null || true
67- fi
68- }
69- trap cleanup EXIT
70-
71- # Start monitoring in background
72- (
73- while true; do
74- echo "=== $(date) ==="
75- echo "Memory:"
76- free -h
77- echo "Disk:"
78- df -h
79- echo "Processes:"
80- ps aux --sort=-%mem | head -5
81- echo "=================="
82- sleep 10 # Check every 10 seconds
83- done
84- ) &
85- MONITOR_PID=$!
86-
87- # Run the main process
88- ./gnark-verifier --config "../noir-examples/noir-passport-examples/complete_age_check/params_for_recursive_verifier" --r1cs "../noir-examples/noir-passport-examples/complete_age_check/r1cs.json"
89-
90- # Stop monitoring
91- kill $MONITOR_PID
104+
105+ # Disabled gnark, check https://github.com/worldfnd/provekit/issues/302
106+ # - name: Run Gnark verifier
107+ # working-directory: recursive-verifier
108+ # run: |
109+ # go build -o gnark-verifier cmd/cli/main.go
110+
111+ # # Set up cleanup trap
112+ # cleanup() {
113+ # if [ ! -z "$MONITOR_PID" ]; then
114+ # kill $MONITOR_PID 2>/dev/null || true
115+ # fi
116+ # }
117+ # trap cleanup EXIT
118+
119+ # # Start monitoring in background
120+ # (
121+ # while true; do
122+ # echo "=== $(date) ==="
123+ # echo "Memory:"
124+ # free -h
125+ # echo "Disk:"
126+ # df -h
127+ # echo "Processes:"
128+ # ps aux --sort=-%mem | head -5
129+ # echo "=================="
130+ # sleep 10 # Check every 10 seconds
131+ # done
132+ # ) &
133+ # MONITOR_PID=$!
134+
135+ # # Run the main process
136+ # ./gnark-verifier --config "../noir-examples/noir-passport/merkle_age_check/params_for_recursive_verifier" --r1cs "../noir-examples/noir-passport/merkle_age_check/r1cs.json"
137+
138+ # # Stop monitoring
139+ # kill $MONITOR_PID
0 commit comments