Skip to content

Commit 9a77d05

Browse files
0xwonjclaude
andcommitted
ci: install protoc for the sp1-sdk jobs
sp1-sdk compiles protobuf definitions for its network prover, so the prover-backends/sp1 and harness/sp1 clippy jobs need protoc. The verifier-only sp1 job deliberately does not: verification pulls sp1-verifier rather than sp1-sdk, which is what keeps the stored-fixture job free of a guest ELF, proving key, and Docker. Document the same in the README. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 parent 03763a7 commit 9a77d05

2 files changed

Lines changed: 24 additions & 0 deletions

File tree

.github/workflows/ci.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,12 +61,16 @@ jobs:
6161
args: -p ghostpool-verifier-backends --features native-reference
6262
- name: prover-backends/sp1
6363
args: -p ghostpool-prover-backends --features sp1
64+
# sp1-sdk builds prost protobuf definitions for the network prover.
65+
protoc: true
6466
- name: validator/mock+sp1
6567
args: -p ghostpool-validator --features mock,verifier-sp1
6668
- name: client/json-rpc
6769
args: -p ghostpool-client --features json-rpc
6870
- name: harness/sp1
6971
args: -p ghostpool-harness --features sp1
72+
# pulls prover-backends/sp1, hence sp1-sdk, hence protoc.
73+
protoc: true
7074
steps:
7175
- uses: actions/checkout@v4
7276
- uses: dtolnay/rust-toolchain@master
@@ -76,6 +80,11 @@ jobs:
7680
- uses: Swatinem/rust-cache@v2
7781
with:
7882
key: ${{ matrix.name }}
83+
# Only the sp1-sdk-dependent jobs need protoc. The verifier-only sp1 job
84+
# deliberately does not: verification pulls sp1-verifier, not sp1-sdk,
85+
# which is what keeps the stored-fixture job cheap.
86+
- if: matrix.protoc
87+
run: sudo apt-get update && sudo apt-get install -y protobuf-compiler
7988
# clippy rather than check, so feature-gated code is linted too.
8089
- run: cargo clippy --all-targets --locked ${{ matrix.args }} -- -D warnings
8190

README.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,21 @@ cargo clippy --workspace --all-targets -- -D warnings
139139
cargo test --workspace --all-targets
140140
```
141141

142+
Building anything that pulls `sp1-sdk` (the `sp1` feature of
143+
`ghostpool-prover-backends`, and therefore of `ghostpool-harness`) additionally
144+
needs `protoc`, because the SDK compiles protobuf definitions for its network
145+
prover:
146+
147+
```bash
148+
sudo apt-get install -y protobuf-compiler # Debian/Ubuntu
149+
```
150+
151+
Verification does not: `ghostpool-verifier-backends`'s `sp1` feature pulls only
152+
`sp1-verifier`. That is what lets the committed proof fixtures
153+
(`crates/verifier-backends/tests/fixtures/`) be checked in CI without a guest
154+
ELF, a proving key, or Docker. See
155+
[docs/design/ci-and-proof-fixtures.md](docs/design/ci-and-proof-fixtures.md).
156+
142157
## Harness Artifacts
143158

144159
The lean harness expands a TOML config into an explicit run plan, executes it

0 commit comments

Comments
 (0)