Skip to content

feat: mina verifiers #2119

feat: mina verifiers

feat: mina verifiers #2119

name: build-and-test-rust-projects
on:
push:
branches:
- testnet
- staging
pull_request:
branches: ["*"]
paths:
- "crates/**"
- "aggregation_mode/**"
- ".github/workflows/build-and-test-rust.yml"
jobs:
build:
runs-on: aligned-runner
steps:
- uses: actions/checkout@v4
- name: Set up Rust
uses: actions-rs/toolchain@v1
with:
toolchain: 1.86.0
components: rustfmt, clippy
override: true
# Reference: https://github.com/succinctlabs/sp1/actions/runs/8886659400/workflow#L61-L65
- name: Install sp1 toolchain
run: |
curl -L https://sp1.succinct.xyz | bash
source /home/runner/.bashrc
~/.sp1/bin/sp1up
- name: Install risc0 toolchain
run: |
curl -L https://risczero.com/install | bash
source ~/.bashrc
~/.risc0/bin/rzup install
- name: Cache Rust dependencies
uses: actions/cache@v3
with:
path: |
~/.cargo/registry
~/.cargo/git
crates/target
key: ${{ runner.os }}-rust-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-rust-
- name: Check formatting
run: |
cd crates
cargo fmt --all -- --check
- name: Run Clippy
run: |
cd crates
cargo clippy --all -- -D warnings
- name: Build Batcher
run: |
cd crates
cargo build --all
- name: Check formatting of AggregationMode
run: |
cd aggregation_mode
cargo fmt --all -- --check
- name: Build AggregationMode # We build before clippy to generate the ELF
run: |
cd aggregation_mode
cargo build --all
- name: Run Clippy on AggregationMode
run: |
cd aggregation_mode
# We need to skip the build as clippy does not support the riscv32im-risc0-zkvm-elf target
RISC0_SKIP_BUILD=1 cargo clippy --all -- -D warnings
test:
runs-on: aligned-runner
needs: build
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: foundry-toolchain
uses: foundry-rs/[email protected]
# Reference: https://github.com/succinctlabs/sp1/actions/runs/8886659400/workflow#L61-L65
- name: Install sp1 toolchain
run: |
curl -L https://sp1.succinct.xyz | bash
source /home/runner/.bashrc
~/.sp1/bin/sp1up
- name: Install risc0 toolchain
run: |
curl -L https://risczero.com/install | bash
source ~/.bashrc
~/.risc0/bin/rzup install
- name: Cache Rust dependencies
uses: actions/cache@v3
with:
path: |
~/.cargo/registry
~/.cargo/git
crates/target
key: ${{ runner.os }}-rust-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-rust-
- name: Run Batcher tests
run: |
cd crates
cargo test --all
- name: Run AggregationMode tests
run: |
cd aggregation_mode
cargo test --all