Skip to content

feat: Add cycle-tracking example with multiple binaries #4853

feat: Add cycle-tracking example with multiple binaries

feat: Add cycle-tracking example with multiple binaries #4853

Workflow file for this run

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-fast:
name: Test (fast-experimental)
runs-on: runs-on,runner=64cpu-linux-x64,spot=false
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 core-v2
uses: actions-rs/cargo@v1
with:
command: test
toolchain: 1.79.0
args: --release --package sp1-recursion-core-v2 --package sp1-recursion-circuit-v2 --features native-gnark
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-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
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
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
- name: Run cycle tracking script
run: |
cd examples/cycle-tracking/script
cargo add sp1-sdk --path $GITHUB_WORKSPACE/crates/sdk
SP1_DEV=1 RUST_LOG=info cargo run --release