Skip to content

Commit beba36d

Browse files
roynalnarutolispc
andauthored
feat: CI (#46)
* feat: ci lint * remove set command * feat: dockerize build-guest * on pull request * fix: rename action and update dir * test again * test runs-on * add target * wip test * test * test * test * test * test * test * test * test * test * test * test * test * fix: update dockerignore * test: if commitment is changed * fix: missing outputs field * fix: multi-line file content * revert ce4ae32 * should be ok * test: pwd * use same workdir as github actions * try * try * haha * Update build-guest.yml * Update build-guest.yml * remove unused content * some more changes * remove println * re-used /app, so commitments change --------- Co-authored-by: Zhuo Zhang <mycinbrin@gmail.com>
1 parent 9f0b7df commit beba36d

File tree

17 files changed

+296
-16
lines changed

17 files changed

+296
-16
lines changed

.dockerignore

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
.github
2+
3+
.gitignore
4+
5+
.dockerignore
6+
7+
Dockerfile
8+
Dockerfile.backup
9+
10+
.output
11+
12+
docs
13+
14+
*.yml
15+
16+
*.sh
17+
!build-guest-actions-entrypoint.sh
18+
19+
*.md
20+
21+
openvm-clippy
22+
23+
target

.github/workflows/build-guest.yml

Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
name: Build Guest
2+
3+
on:
4+
pull_request:
5+
types: [synchronize, opened, reopened, ready_for_review]
6+
branches:
7+
- master
8+
- release/*
9+
paths:
10+
- crates/circuits/types/**/*
11+
- crates/circuits/chunk-circuit/**/*
12+
- crates/circuits/batch-circuit/**/*
13+
- crates/circuits/bundle-circuit/**/*
14+
- crates/build-guest/**/*
15+
push:
16+
branches:
17+
- master
18+
- release/*
19+
paths:
20+
- crates/circuits/types/**/*
21+
- crates/circuits/chunk-circuit/**/*
22+
- crates/circuits/batch-circuit/**/*
23+
- crates/circuits/bundle-circuit/**/*
24+
- crates/build-guest/**/*
25+
26+
jobs:
27+
docker-build-guest:
28+
name: Docker containerized build of guest programs
29+
runs-on: ubuntu-latest
30+
steps:
31+
- uses: actions/checkout@v4
32+
33+
- name: chunk commitments (prover)
34+
id: commitments-chunk-prover
35+
run: |
36+
{
37+
echo 'commitments<<EOF'
38+
cat crates/prover/src/commitments/chunk.rs
39+
echo EOF
40+
} >> $GITHUB_OUTPUT
41+
42+
- name: batch commitments (prover)
43+
id: commitments-batch-prover
44+
run: |
45+
{
46+
echo 'commitments<<EOF'
47+
cat crates/prover/src/commitments/batch.rs
48+
echo EOF
49+
} >> $GITHUB_OUTPUT
50+
51+
- name: bundle commitments (prover)
52+
id: commitments-bundle-prover
53+
run: |
54+
{
55+
echo 'commitments<<EOF'
56+
cat crates/prover/src/commitments/bundle.rs
57+
echo EOF
58+
} >> $GITHUB_OUTPUT
59+
60+
- name: chunk commitments (verifier)
61+
id: commitments-chunk-verifier
62+
run: |
63+
{
64+
echo 'commitments<<EOF'
65+
cat crates/verifier/src/commitments/chunk.rs
66+
echo EOF
67+
} >> $GITHUB_OUTPUT
68+
69+
- name: batch commitments (verifier)
70+
id: commitments-batch-verifier
71+
run: |
72+
{
73+
echo 'commitments<<EOF'
74+
cat crates/verifier/src/commitments/batch.rs
75+
echo EOF
76+
} >> $GITHUB_OUTPUT
77+
78+
- name: bundle commitments (verifier)
79+
id: commitments-bundle-verifier
80+
run: |
81+
{
82+
echo 'commitments<<EOF'
83+
cat crates/verifier/src/commitments/bundle.rs
84+
echo EOF
85+
} >> $GITHUB_OUTPUT
86+
87+
- name: chunk commitments (circuits)
88+
id: commitments-chunk-circuits
89+
run: |
90+
{
91+
echo 'commitments<<EOF'
92+
cat crates/circuits/batch-circuit/src/child_commitments.rs
93+
echo EOF
94+
} >> $GITHUB_OUTPUT
95+
96+
- name: batch commitments (circuits)
97+
id: commitments-batch-circuits
98+
run: |
99+
{
100+
echo 'commitments<<EOF'
101+
cat crates/circuits/bundle-circuit/src/child_commitments.rs
102+
echo EOF
103+
} >> $GITHUB_OUTPUT
104+
105+
- name: Sanity check for chunk-commitments (prover vs verifier)
106+
uses: nick-fields/assert-action@v1
107+
with:
108+
expected: ${{ steps.commitments-chunk-prover.outputs.commitments }}
109+
actual: ${{ steps.commitments-chunk-verifier.outputs.commitments }}
110+
111+
- name: Sanity check for chunk-commitments (prover vs circuits)
112+
uses: nick-fields/assert-action@v1
113+
with:
114+
expected: ${{ steps.commitments-chunk-prover.outputs.commitments }}
115+
actual: ${{ steps.commitments-chunk-circuits.outputs.commitments }}
116+
117+
- name: Sanity check for batch-commitments (prover vs verifier)
118+
uses: nick-fields/assert-action@v1
119+
with:
120+
expected: ${{ steps.commitments-batch-prover.outputs.commitments }}
121+
actual: ${{ steps.commitments-batch-verifier.outputs.commitments }}
122+
123+
- name: Sanity check for batch-commitments (prover vs circuits)
124+
uses: nick-fields/assert-action@v1
125+
with:
126+
expected: ${{ steps.commitments-batch-prover.outputs.commitments }}
127+
actual: ${{ steps.commitments-batch-circuits.outputs.commitments }}
128+
129+
- name: Sanity check for bundle-commitments (prover vs verifier)
130+
uses: nick-fields/assert-action@v1
131+
with:
132+
expected: ${{ steps.commitments-bundle-prover.outputs.commitments }}
133+
actual: ${{ steps.commitments-bundle-verifier.outputs.commitments }}
134+
135+
- name: Build guest and check diff
136+
run: |
137+
make build-guest
138+
git diff
139+
git diff --quiet && echo "no diff" || (echo "diff"; exit 1)

.github/workflows/lint.yml

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
name: Lint
2+
3+
on:
4+
pull_request:
5+
types: [synchronize, opened, reopened, ready_for_review]
6+
push:
7+
branches:
8+
- master
9+
- release/*
10+
11+
env:
12+
CARGO_NET_GIT_FETCH_WITH_CLI: true
13+
CARGO_REGISTRIES_CRATES_IO_PROTOCOL: git
14+
15+
jobs:
16+
skip_check:
17+
runs-on: ubuntu-latest
18+
outputs:
19+
should_skip: ${{ steps.skip_check.outputs.should_skip }}
20+
steps:
21+
- id: skip_check
22+
uses: fkirc/skip-duplicate-actions@v5
23+
with:
24+
cancel_others: 'true'
25+
concurrent_skipping: same_content_newer
26+
paths_ignore: ["**/README.md"]
27+
28+
fmt:
29+
needs: [ skip_check ]
30+
if: |
31+
github.event.pull_request.draft == false &&
32+
(github.event.action == 'ready_for_review' || needs.skip_check.outputs.should_skip != 'true')
33+
name: Rustfmt
34+
timeout-minutes: 30
35+
runs-on: ubuntu-latest
36+
steps:
37+
- uses: actions/checkout@v4
38+
- uses: dtolnay/rust-toolchain@master
39+
with:
40+
toolchain: "nightly-2024-12-06"
41+
components: rustfmt
42+
- name: Cargo fmt
43+
run: cargo fmt --all -- --check
44+
45+
clippy:
46+
needs: [ fmt ]
47+
if: |
48+
github.event.pull_request.draft == false &&
49+
(github.event.action == 'ready_for_review' || needs.skip_check.outputs.should_skip != 'true')
50+
name: Clippy
51+
timeout-minutes: 30
52+
runs-on: ubuntu-latest
53+
steps:
54+
- uses: actions/checkout@v4
55+
- uses: dtolnay/rust-toolchain@master
56+
with:
57+
toolchain: "nightly-2024-12-06"
58+
components: clippy
59+
- name: Clippy
60+
run: make clippy

Cargo.toml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,3 +102,8 @@ reth-scroll-evm = { git = "https://github.com/scroll-tech//reth", branch = "fix/
102102
reth-scroll-primitives = { git = "https://github.com/scroll-tech//reth", branch = "fix/scroll-zkvm" }
103103

104104
scroll-alloy-consensus = { git = "https://github.com/scroll-tech//reth", branch = "fix/scroll-zkvm" }
105+
106+
[profile.release]
107+
codegen-units = 1
108+
panic = "abort"
109+
strip = true

Dockerfile

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
FROM rust:1.85
2+
3+
RUN rustup toolchain install nightly-2024-12-06-x86_64-unknown-linux-gnu
4+
RUN rustup toolchain install nightly-2024-10-30-x86_64-unknown-linux-gnu
5+
RUN rustup component add rust-src --toolchain nightly-2024-10-30-x86_64-unknown-linux-gnu
6+
7+
WORKDIR /app
8+
9+
COPY . .
10+
11+
ENTRYPOINT ["/app/build-guest-actions-entrypoint.sh"]

Makefile

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,22 @@ fmt:
1111
@cargo fmt --all
1212

1313
clippy:
14-
@cargo clippy --manifest-path crates/circuits/types/Cargo.toml
15-
@cargo clippy --manifest-path crates/integration/Cargo.toml
16-
@cargo clippy --manifest-path crates/prover/Cargo.toml
17-
@cargo clippy --manifest-path crates/verifier/Cargo.toml
18-
@cargo clippy --manifest-path crates/build-guest/Cargo.toml
19-
sh openvm-clippy
14+
@cargo clippy --tests --all-features --manifest-path crates/circuits/types/Cargo.toml -- -D warnings
15+
sh openvm-clippy.sh
16+
@cargo clippy --tests --all-features --manifest-path crates/verifier/Cargo.toml -- -D warnings
17+
@cargo clippy --tests --all-features --manifest-path crates/prover/Cargo.toml -- -D warnings
18+
@cargo clippy --tests --all-features --manifest-path crates/integration/Cargo.toml -- -D warnings
19+
@cargo clippy --tests --all-features --manifest-path crates/build-guest/Cargo.toml -- -D warnings
20+
21+
clean-guest:
22+
docker stop build-guest
23+
docker rm build-guest
24+
docker rmi build-guest:local
2025

2126
build-guest:
22-
@cargo run --release -p scroll-zkvm-build-guest
27+
sh build-guest.sh
28+
29+
clean-build-guest: clean-guest build-guest
2330

2431
test-execute-chunk:
2532
@cargo test --release -p scroll-zkvm-integration --features scroll --test chunk_circuit test_execute -- --exact --nocapture

build-guest-actions-entrypoint.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
#!/bin/bash
2+
3+
# run crates/build-guest
4+
cargo run --release -p scroll-zkvm-build-guest

build-guest.sh

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
#!/bin/bash
2+
3+
# build docker image
4+
docker build --platform linux/amd64 -t build-guest:local .
5+
6+
# run docker image
7+
docker run --platform linux/amd64 --name build-guest build-guest:local
8+
9+
# copy commitments from container to local (prover)
10+
docker cp build-guest:/app/crates/prover/src/commitments/chunk.rs crates/prover/src/commitments/chunk.rs
11+
docker cp build-guest:/app/crates/prover/src/commitments/batch.rs crates/prover/src/commitments/batch.rs
12+
docker cp build-guest:/app/crates/prover/src/commitments/bundle.rs crates/prover/src/commitments/bundle.rs
13+
14+
# copy commitments to local (verifier)
15+
cp crates/prover/src/commitments/chunk.rs crates/verifier/src/commitments/chunk.rs
16+
cp crates/prover/src/commitments/batch.rs crates/verifier/src/commitments/batch.rs
17+
cp crates/prover/src/commitments/bundle.rs crates/verifier/src/commitments/bundle.rs
18+
19+
# copy commitments to local (circuits)
20+
cp crates/prover/src/commitments/chunk.rs crates/circuits/batch-circuit/src/child_commitments.rs
21+
cp crates/prover/src/commitments/batch.rs crates/circuits/bundle-circuit/src/child_commitments.rs
22+
23+
# copy app.vmexe and openvm.toml from container to local
24+
mkdir -p crates/circuits/chunk-circuit/openvm
25+
mkdir -p crates/circuits/batch-circuit/openvm
26+
mkdir -p crates/circuits/bundle-circuit/openvm
27+
docker cp build-guest:/app/crates/circuits/chunk-circuit/openvm/app.vmexe crates/circuits/chunk-circuit/openvm/app.vmexe
28+
docker cp build-guest:/app/crates/circuits/batch-circuit/openvm/app.vmexe crates/circuits/batch-circuit/openvm/app.vmexe
29+
docker cp build-guest:/app/crates/circuits/bundle-circuit/openvm/app.vmexe crates/circuits/bundle-circuit/openvm/app.vmexe
30+
docker cp build-guest:/app/crates/circuits/chunk-circuit/openvm/openvm.toml crates/circuits/chunk-circuit/openvm/openvm.toml
31+
docker cp build-guest:/app/crates/circuits/batch-circuit/openvm/openvm.toml crates/circuits/batch-circuit/openvm/openvm.toml
32+
docker cp build-guest:/app/crates/circuits/bundle-circuit/openvm/openvm.toml crates/circuits/bundle-circuit/openvm/openvm.toml
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
//! Generated by crates/build-guest. DO NOT OVERWRITE!
22
3-
pub const EXE_COMMIT: [u32; 8] = [1391733106, 921106062, 950136108, 110461137, 1941184241, 1455975835, 1906710701, 1644286022];
3+
pub const EXE_COMMIT: [u32; 8] = [1669094708, 1183403341, 1375120749, 1068122785, 1960732251, 1049183227, 1296926793, 435194223];
44
pub const LEAF_COMMIT: [u32; 8] = [208617668, 136885539, 1279714325, 1320891327, 319797340, 646564618, 415049183, 43595019];
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
//! Generated by crates/build-guest. DO NOT OVERWRITE!
22
3-
pub const EXE_COMMIT: [u32; 8] = [1824368713, 1134759841, 1595842439, 1703578376, 615548466, 1013310680, 1298821558, 1519746883];
3+
pub const EXE_COMMIT: [u32; 8] = [130843466, 1956108853, 345902313, 270250942, 1859529287, 925770409, 1343819060, 1114091536];
44
pub const LEAF_COMMIT: [u32; 8] = [35464847, 715534820, 120679718, 974048058, 1673548606, 986949435, 942480063, 5326510];

0 commit comments

Comments
 (0)