feat: v3.0.0-rc3 #4860
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: PR | |
on: | |
push: | |
branches: [main, dev] | |
pull_request: | |
branches: | |
- "**" | |
paths: | |
- "crates/**" | |
- "examples/**" | |
- "Cargo.toml" | |
- ".github/workflows/**" | |
merge_group: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
jobs: | |
test-x86: | |
name: Test (x86-64) | |
runs-on: | |
[ | |
runs-on, | |
runner=64cpu-linux-x64, | |
spot=false, | |
"run-id=${{ github.run_id }}", | |
] | |
env: | |
CARGO_NET_GIT_FETCH_WITH_CLI: "true" | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Setup CI | |
uses: ./.github/actions/setup | |
- name: Run cargo check | |
uses: actions-rs/cargo@v1 | |
with: | |
command: check | |
toolchain: 1.79.0 | |
args: --all-targets --all-features | |
- name: Run cargo test | |
uses: actions-rs/cargo@v1 | |
with: | |
command: test | |
toolchain: 1.79.0 | |
args: --release --features native-gnark --workspace --exclude sp1-recursion-core --exclude sp1-recursion-program --exclude sp1-recursion-circuit | |
env: | |
RUSTFLAGS: -Copt-level=3 -Cdebug-assertions -Coverflow-checks=y -Cdebuginfo=0 -C target-cpu=native | |
RUST_BACKTRACE: 1 | |
FRI_QUERIES: 1 | |
SP1_DEV: 1 | |
test-arm: | |
name: Test (ARM) | |
runs-on: | |
[ | |
runs-on, | |
runner=64cpu-linux-arm64, | |
spot=false, | |
"run-id=${{ github.run_id }}", | |
] | |
env: | |
CARGO_NET_GIT_FETCH_WITH_CLI: "true" | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Setup CI | |
uses: ./.github/actions/setup | |
- name: Run cargo check | |
uses: actions-rs/cargo@v1 | |
with: | |
command: check | |
toolchain: 1.79.0 | |
args: --all-targets --all-features | |
- name: Run cargo test | |
uses: actions-rs/cargo@v1 | |
with: | |
command: test | |
toolchain: 1.79.0 | |
args: --release --features native-gnark --workspace --exclude sp1-recursion-core --exclude sp1-recursion-program --exclude sp1-recursion-circuit | |
env: | |
RUSTFLAGS: -Copt-level=3 -Cdebug-assertions -Coverflow-checks=y -Cdebuginfo=0 -C target-cpu=native | |
RUST_BACKTRACE: 1 | |
FRI_QUERIES: 1 | |
SP1_DEV: 1 | |
lint: | |
name: Formatting & Clippy | |
runs-on: [runs-on, runner=8cpu-linux-x64, "run-id=${{ github.run_id }}"] | |
env: | |
CARGO_NET_GIT_FETCH_WITH_CLI: "true" | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Setup CI | |
uses: ./.github/actions/setup | |
- name: Run cargo fmt | |
uses: actions-rs/cargo@v1 | |
with: | |
command: fmt | |
args: --all -- --check | |
env: | |
CARGO_INCREMENTAL: 1 | |
- name: Run cargo clippy | |
uses: actions-rs/cargo@v1 | |
with: | |
command: clippy | |
args: --all-features --all-targets -- -D warnings -A incomplete-features | |
env: | |
CARGO_INCREMENTAL: 1 | |
- name: Add wasm target | |
run: rustup target add wasm32-unknown-unknown | |
- name: Check wasm compatibility for sdk | |
uses: actions-rs/cargo@v1 | |
with: | |
command: check | |
args: -p sp1-sdk --target wasm32-unknown-unknown --no-default-features | |
examples: | |
name: Examples | |
runs-on: [runs-on, runner=8cpu-linux-x64, "run-id=${{ github.run_id }}"] | |
env: | |
CARGO_NET_GIT_FETCH_WITH_CLI: "true" | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Setup CI | |
uses: ./.github/actions/setup | |
- name: Install SP1 toolchain | |
run: | | |
curl -L https://sp1.succinct.xyz | bash | |
~/.sp1/bin/sp1up | |
~/.sp1/bin/cargo-prove prove --version | |
- name: Install SP1 CLI | |
run: | | |
cd crates/cli | |
cargo install --force --locked --path . | |
~/.sp1/bin/cargo-prove prove install-toolchain | |
cd ~ | |
- name: Run cargo check | |
run: | | |
RUSTFLAGS="-Copt-level=3 -Cdebug-assertions -Coverflow-checks=y -Cdebuginfo=0 -C target-cpu=native" \ | |
cargo check --manifest-path examples/Cargo.toml --all-targets --all-features | |
- name: Run cargo check on RSP | |
run: | | |
cd examples/rsp/script | |
RUSTFLAGS="-Copt-level=3 -Cdebug-assertions -Coverflow-checks=y -Cdebuginfo=0 -C target-cpu=native" \ | |
cargo check --all-targets --all-features | |
cli: | |
name: CLI | |
runs-on: [runs-on, runner=8cpu-linux-x64, "run-id=${{ github.run_id }}"] | |
env: | |
CARGO_NET_GIT_FETCH_WITH_CLI: "true" | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Setup CI | |
uses: ./.github/actions/setup | |
- name: Install SP1 toolchain | |
run: | | |
curl -L https://sp1.succinct.xyz | bash | |
~/.sp1/bin/sp1up | |
~/.sp1/bin/cargo-prove prove --version | |
- name: Install SP1 CLI | |
run: | | |
cd crates/cli | |
cargo install --force --locked --path . | |
cd ~ | |
- name: Run cargo prove new | |
run: | | |
cargo prove new fibonacci --version dev | |
- name: Build program and run script | |
run: | | |
cd fibonacci | |
cd program | |
cargo add sp1-zkvm --path $GITHUB_WORKSPACE/crates/zkvm/entrypoint | |
cargo prove build | |
cd ../script | |
cargo remove sp1-sdk | |
cargo add sp1-sdk --path $GITHUB_WORKSPACE/crates/sdk | |
SP1_DEV=1 RUST_LOG=info cargo run --release -- --prove | |
performance: | |
name: Performance | |
runs-on: [runs-on, family=c7a.48xlarge, "run-id=${{ github.run_id }}"] | |
env: | |
CARGO_NET_GIT_FETCH_WITH_CLI: "true" | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Setup CI | |
uses: ./.github/actions/setup | |
- name: Install SP1 toolchain | |
run: | | |
curl -L https://sp1.succinct.xyz | bash | |
~/.sp1/bin/sp1up | |
~/.sp1/bin/cargo-prove prove --version | |
- name: Run Evaluation | |
run: | | |
cd crates/eval | |
RUSTFLAGS='-C target-cpu=native' cargo run --release -- \ | |
--programs fibonacci,ssz-withdrawals,tendermint \ | |
--post-to-slack ${{ github.ref == 'refs/heads/dev' }} \ | |
--slack-channel-id "${{ secrets.SLACK_CHANNEL_ID }}" \ | |
--slack-token "${{ secrets.SLACK_TOKEN }}" \ | |
--post-to-github ${{ github.event_name == 'pull_request' }} \ | |
--github-token "${{ secrets.GITHUB_TOKEN }}" \ | |
--repo-owner "${{ github.repository_owner }}" \ | |
--repo-name "${{ github.event.repository.name }}" \ | |
--pr-number "${{ github.event.pull_request.number }}" \ | |
--branch-name "${{ github.head_ref || github.ref_name }}" \ | |
--commit-hash "${{ github.sha }}" \ | |
--author "${{ github.event.pull_request.user.login || github.actor }}" | |
low-memory: | |
name: Low Memory | |
strategy: | |
matrix: | |
mem_limit: [16, 32, 64] | |
runs-on: | |
[ | |
runs-on, | |
"ram=${{ matrix.mem_limit}}", | |
family=c7a, | |
image=ubuntu22-full-x64, | |
"run-id=${{ github.run_id }}", | |
] | |
env: | |
CARGO_NET_GIT_FETCH_WITH_CLI: "true" | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Setup CI | |
uses: ./.github/actions/setup | |
- name: Install SP1 toolchain | |
run: | | |
curl -L https://sp1.succinct.xyz | bash | |
~/.sp1/bin/sp1up | |
~/.sp1/bin/cargo-prove prove --version | |
- name: Install SP1 CLI | |
run: | | |
cd crates/cli | |
cargo install --force --locked --path . | |
cd ~ | |
- name: Run tendermint script | |
run: | | |
cd examples/tendermint/program | |
cargo add sp1-zkvm --path $GITHUB_WORKSPACE/crates/zkvm/entrypoint | |
cargo prove build | |
cd ../script | |
cargo remove sp1-sdk | |
cargo add sp1-sdk --path $GITHUB_WORKSPACE/crates/sdk | |
SP1_DEV=1 RUST_LOG=info cargo run --release |