mirror of
https://github.com/zkonduit/ezkl.git
synced 2026-01-14 08:48:01 -05:00
639 lines
29 KiB
YAML
639 lines
29 KiB
YAML
name: Rust
|
|
on:
|
|
push:
|
|
branches: ["main"]
|
|
paths-ignore:
|
|
- "README.md"
|
|
- "cla.md"
|
|
pull_request:
|
|
branches: ["main"]
|
|
paths-ignore:
|
|
- "README.md"
|
|
- "cla.md"
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
env:
|
|
CARGO_TERM_COLOR: always
|
|
|
|
jobs:
|
|
fr-age-test:
|
|
needs: [build, library-tests, docs]
|
|
permissions:
|
|
contents: read
|
|
runs-on: large-self-hosted
|
|
env:
|
|
EVM_VERIFIER_EZKL_TOKEN: ${{ secrets.EVM_VERIFIER_EZKL_TOKEN }}
|
|
steps:
|
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 #v4.2.2
|
|
with:
|
|
persist-credentials: false
|
|
|
|
- uses: actions-rust-lang/setup-rust-toolchain@fb51252c7ba57d633bc668f941da052e410add48 #v1.0.6
|
|
with:
|
|
toolchain: nightly-2025-05-01
|
|
override: true
|
|
components: rustfmt, clippy
|
|
- uses: baptiste0928/cargo-install@91c5da15570085bcde6f4d7aed98cb82d6769fd3
|
|
with:
|
|
crate: cargo-nextest
|
|
locked: true
|
|
- name: fr age Mock
|
|
run: cargo nextest run --release --verbose tests::large_mock_::large_tests_6_expects -- --include-ignored
|
|
|
|
build:
|
|
permissions:
|
|
contents: read
|
|
runs-on: ubuntu-22.04
|
|
env:
|
|
EVM_VERIFIER_EZKL_TOKEN: ${{ secrets.EVM_VERIFIER_EZKL_TOKEN }}
|
|
RUSTFLAGS: "-C linker=gcc"
|
|
OPENSSL_NO_VENDOR: 1
|
|
steps:
|
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 #v4.2.2
|
|
with:
|
|
persist-credentials: false
|
|
|
|
- uses: actions-rust-lang/setup-rust-toolchain@fb51252c7ba57d633bc668f941da052e410add48 #v1.0.6
|
|
with:
|
|
toolchain: nightly-2025-05-01
|
|
override: true
|
|
components: rustfmt, clippy
|
|
- name: install libc6
|
|
run: sudo apt-get install -y libc6
|
|
- name: Install cmake and build dependencies
|
|
run: sudo apt-get update && sudo apt-get install -y cmake build-essential g++ gcc libclang-dev llvm-dev libstdc++-12-dev libc6-dev libssl-dev pkg-config
|
|
- name: Force rebuild icicle dependencies
|
|
run: cargo clean -p icicle-runtime -p icicle-core -p icicle-hash -p icicle-bn254
|
|
- name: Build
|
|
run: cargo build --verbose
|
|
|
|
docs:
|
|
permissions:
|
|
contents: read
|
|
runs-on: ubuntu-22.04
|
|
env:
|
|
EVM_VERIFIER_EZKL_TOKEN: ${{ secrets.EVM_VERIFIER_EZKL_TOKEN }}
|
|
steps:
|
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 #v4.2.2
|
|
with:
|
|
persist-credentials: false
|
|
- uses: actions-rust-lang/setup-rust-toolchain@fb51252c7ba57d633bc668f941da052e410add48 #v1.0.6
|
|
with:
|
|
toolchain: nightly-2025-05-01
|
|
override: true
|
|
components: rustfmt, clippy
|
|
- name: install libc6
|
|
run: sudo apt-get install -y libc6
|
|
- name: Install cmake and build dependencies
|
|
run: sudo apt-get update && sudo apt-get install -y cmake build-essential g++ gcc libclang-dev llvm-dev libstdc++-12-dev libc6-dev libssl-dev pkg-config
|
|
- name: Docs
|
|
run: cargo doc --verbose
|
|
|
|
library-tests:
|
|
permissions:
|
|
contents: read
|
|
runs-on: ubuntu-22.04
|
|
env:
|
|
EVM_VERIFIER_EZKL_TOKEN: ${{ secrets.EVM_VERIFIER_EZKL_TOKEN }}
|
|
RUSTFLAGS: "-C linker=gcc"
|
|
OPENSSL_NO_VENDOR: 1
|
|
steps:
|
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 #v4.2.2
|
|
with:
|
|
persist-credentials: false
|
|
- uses: actions-rust-lang/setup-rust-toolchain@fb51252c7ba57d633bc668f941da052e410add48 #v1.0.6
|
|
with:
|
|
toolchain: nightly-2025-05-01
|
|
override: true
|
|
components: rustfmt, clippy
|
|
- name: install libc6
|
|
run: sudo apt-get install -y libc6
|
|
- name: Install cmake and build dependencies
|
|
run: sudo apt-get update && sudo apt-get install -y cmake build-essential g++ gcc libclang-dev llvm-dev libstdc++-12-dev libc6-dev libssl-dev pkg-config
|
|
- name: Force rebuild icicle dependencies
|
|
run: cargo clean -p icicle-runtime -p icicle-core -p icicle-hash -p icicle-bn254
|
|
- uses: baptiste0928/cargo-install@91c5da15570085bcde6f4d7aed98cb82d6769fd3 #v3.3.0
|
|
with:
|
|
crate: cargo-nextest
|
|
locked: true
|
|
- name: Doc tests
|
|
# nextest doesn't support --doc tests
|
|
run: cargo test --doc --verbose
|
|
- name: Library tests
|
|
run: cargo nextest run --lib --verbose
|
|
|
|
ultra-overflow-tests-gpu:
|
|
permissions:
|
|
contents: read
|
|
runs-on: gpu
|
|
env:
|
|
ENABLE_ICICLE_GPU: true
|
|
EVM_VERIFIER_EZKL_TOKEN: ${{ secrets.EVM_VERIFIER_EZKL_TOKEN }}
|
|
RUSTFLAGS: "-C linker=gcc"
|
|
OPENSSL_NO_VENDOR: 1
|
|
steps:
|
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 #v4.2.2
|
|
with:
|
|
persist-credentials: false
|
|
- uses: actions-rust-lang/setup-rust-toolchain@fb51252c7ba57d633bc668f941da052e410add48 #v1.0.6
|
|
with:
|
|
toolchain: nightly-2025-05-01
|
|
override: true
|
|
components: rustfmt, clippy
|
|
- uses: baptiste0928/cargo-install@91c5da15570085bcde6f4d7aed98cb82d6769fd3 #v3.3.0
|
|
with:
|
|
crate: cargo-nextest
|
|
locked: true
|
|
- name: Setup GPU dependencies
|
|
run: sudo ./setup-gpu.sh --yes
|
|
- name: Install build dependencies
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y build-essential g++ gcc cmake libclang-dev llvm-dev libstdc++-12-dev libc6 libc6-dev libssl-dev pkg-config
|
|
- name: Force rebuild icicle dependencies
|
|
run: cargo clean -p icicle-runtime -p icicle-core -p icicle-hash -p icicle-bn254
|
|
# - name: Matmul overflow (wasi)
|
|
# run: cargo wasi test matmul_col_ultra_overflow -- --include-ignored --nocapture
|
|
# - name: Conv overflow (wasi)
|
|
# run: cargo wasi test conv_col_ultra_overflow -- --include-ignored --nocapture
|
|
- name: lookup overflow
|
|
run: cargo nextest run lookup_ultra_overflow --no-capture --features gpu-accelerated -- --include-ignored
|
|
- name: Matmul overflow
|
|
run: RUST_LOG=debug cargo nextest run matmul_col_ultra_overflow --no-capture --features gpu-accelerated -- --include-ignored
|
|
- name: Conv overflow
|
|
run: RUST_LOG=debug cargo nextest run conv_col_ultra_overflow --no-capture --features gpu-accelerated -- --include-ignored
|
|
- name: Conv + relu overflow
|
|
run: cargo nextest run conv_relu_col_ultra_overflow --no-capture --features gpu-accelerated -- --include-ignored
|
|
|
|
ultra-overflow-tests:
|
|
permissions:
|
|
contents: read
|
|
runs-on: [non-gpu, non-sgx]
|
|
needs: [build, library-tests, docs]
|
|
env:
|
|
EVM_VERIFIER_EZKL_TOKEN: ${{ secrets.EVM_VERIFIER_EZKL_TOKEN }}
|
|
RUSTFLAGS: "-C linker=gcc"
|
|
OPENSSL_NO_VENDOR: 1
|
|
|
|
steps:
|
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 #v4.2.2
|
|
with:
|
|
persist-credentials: false
|
|
|
|
- uses: actions-rust-lang/setup-rust-toolchain@fb51252c7ba57d633bc668f941da052e410add48 #v1.0.6
|
|
with:
|
|
toolchain: nightly-2025-05-01
|
|
override: true
|
|
components: rustfmt, clippy
|
|
- name: install libc6
|
|
run: sudo apt-get install -y libc6
|
|
- name: Install cmake and build dependencies
|
|
run: sudo apt-get update && sudo apt-get install -y cmake build-essential g++ gcc libclang-dev llvm-dev libstdc++-12-dev libc6-dev libssl-dev pkg-config
|
|
- name: Force rebuild icicle dependencies
|
|
run: cargo clean -p icicle-runtime -p icicle-core -p icicle-hash -p icicle-bn254
|
|
- uses: baptiste0928/cargo-install@91c5da15570085bcde6f4d7aed98cb82d6769fd3 #v3.3.0
|
|
with:
|
|
crate: cargo-nextest
|
|
locked: true
|
|
- name: lookup overflow
|
|
run: cargo nextest run lookup_ultra_overflow --no-capture -- --include-ignored
|
|
- name: Matmul overflow
|
|
run: RUST_LOG=debug cargo nextest run matmul_col_ultra_overflow --no-capture -- --include-ignored
|
|
- name: Conv overflow
|
|
run: RUST_LOG=debug cargo nextest run --release conv_col_ultra_overflow --no-capture -- --include-ignored
|
|
- name: Conv + relu overflow
|
|
run: cargo nextest run --release conv_relu_col_ultra_overflow --no-capture -- --include-ignored
|
|
|
|
model-serialization:
|
|
permissions:
|
|
contents: read
|
|
runs-on: ubuntu-22.04
|
|
env:
|
|
EVM_VERIFIER_EZKL_TOKEN: ${{ secrets.EVM_VERIFIER_EZKL_TOKEN }}
|
|
RUSTFLAGS: "-C linker=gcc"
|
|
OPENSSL_NO_VENDOR: 1
|
|
|
|
steps:
|
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 #v4.2.2
|
|
with:
|
|
persist-credentials: false
|
|
|
|
- uses: actions-rust-lang/setup-rust-toolchain@fb51252c7ba57d633bc668f941da052e410add48 #v1.0.6
|
|
with:
|
|
toolchain: nightly-2025-05-01
|
|
override: true
|
|
components: rustfmt, clippy
|
|
- name: install libc6
|
|
run: sudo apt-get install -y libc6
|
|
- name: Install cmake and build dependencies
|
|
run: sudo apt-get update && sudo apt-get install -y cmake build-essential g++ gcc libclang-dev llvm-dev libstdc++-12-dev libc6-dev libssl-dev pkg-config
|
|
- name: Force rebuild icicle dependencies
|
|
run: cargo clean -p icicle-runtime -p icicle-core -p icicle-hash -p icicle-bn254
|
|
- uses: baptiste0928/cargo-install@91c5da15570085bcde6f4d7aed98cb82d6769fd3 #v3.3.0
|
|
with:
|
|
crate: cargo-nextest
|
|
locked: true
|
|
- name: Model serialization different binary ID
|
|
run: cargo nextest run native_tests::tests::model_serialization_different_binaries_ --test-threads 1
|
|
|
|
mock-proving-tests:
|
|
permissions:
|
|
contents: read
|
|
runs-on: [non-gpu, non-sgx]
|
|
needs: [build, library-tests, docs]
|
|
env:
|
|
EVM_VERIFIER_EZKL_TOKEN: ${{ secrets.EVM_VERIFIER_EZKL_TOKEN }}
|
|
RUSTFLAGS: "-C linker=gcc"
|
|
OPENSSL_NO_VENDOR: 1
|
|
|
|
steps:
|
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 #v4.2.2
|
|
with:
|
|
persist-credentials: false
|
|
|
|
- uses: actions-rust-lang/setup-rust-toolchain@fb51252c7ba57d633bc668f941da052e410add48 #v1.0.6
|
|
with:
|
|
toolchain: nightly-2025-05-01
|
|
override: true
|
|
components: rustfmt, clippy
|
|
- uses: baptiste0928/cargo-install@91c5da15570085bcde6f4d7aed98cb82d6769fd3 #v3.3.0
|
|
with:
|
|
crate: cargo-nextest
|
|
locked: true
|
|
- name: Force rebuild icicle dependencies
|
|
run: cargo clean -p icicle-runtime -p icicle-core -p icicle-hash -p icicle-bn254
|
|
# - name: The Worm Mock
|
|
# run: cargo nextest run --verbose tests::large_mock_::large_tests_5_expects -- --include-ignored
|
|
- name: Large 1D Conv Mock
|
|
run: cargo nextest run --verbose tests::large_mock_::large_tests_7_expects -- --include-ignored
|
|
- name: MNIST Gan Mock
|
|
run: cargo nextest run --verbose tests::large_mock_::large_tests_4_expects -- --include-ignored
|
|
- name: NanoGPT Mock
|
|
run: cargo nextest run --verbose tests::large_mock_::large_tests_1_expects -- --include-ignored
|
|
- name: Self Attention Mock
|
|
run: cargo nextest run --verbose tests::large_mock_::large_tests_0_expects -- --include-ignored
|
|
- name: Multihead Attention Mock
|
|
run: cargo nextest run --verbose tests::large_mock_::large_tests_2_expects -- --include-ignored
|
|
- name: public outputs
|
|
run: cargo nextest run --verbose tests::mock_public_outputs_ --test-threads 32
|
|
- name: public inputs
|
|
run: cargo nextest run --verbose tests::mock_public_inputs_ --test-threads 32
|
|
- name: fixed params
|
|
run: cargo nextest run --verbose tests::mock_fixed_params_ --test-threads 32
|
|
- name: public outputs and bounded lookup log
|
|
run: cargo nextest run --verbose tests::mock_bounded_lookup_log --test-threads 32
|
|
- name: public outputs + batch size == 10
|
|
run: cargo nextest run --verbose tests::mock_large_batch_public_outputs_ --test-threads 16
|
|
- name: kzg inputs
|
|
run: cargo nextest run --verbose tests::mock_kzg_input_::t --test-threads 32
|
|
- name: kzg params
|
|
run: cargo nextest run --verbose tests::mock_kzg_params_::t --test-threads 32
|
|
- name: kzg outputs
|
|
run: cargo nextest run --verbose tests::mock_kzg_output_::t --test-threads 32
|
|
- name: kzg inputs + params + outputs
|
|
run: cargo nextest run --verbose tests::mock_kzg_all_::t --test-threads 32
|
|
- name: Mock fixed inputs
|
|
run: cargo nextest run --verbose tests::mock_fixed_inputs_ --test-threads 32
|
|
- name: Mock fixed outputs
|
|
run: cargo nextest run --verbose tests::mock_fixed_outputs --test-threads 32
|
|
- name: Mock accuracy calibration
|
|
run: cargo nextest run --verbose tests::mock_accuracy_cal_tests::a
|
|
- name: hashed inputs
|
|
run: cargo nextest run --verbose tests::mock_hashed_input_::t --test-threads 32
|
|
- name: hashed params
|
|
run: cargo nextest run --verbose tests::mock_hashed_params_::t --test-threads 32
|
|
- name: hashed params public inputs
|
|
run: cargo nextest run --verbose tests::mock_hashed_params_public_inputs_::t --test-threads 32
|
|
- name: hashed outputs
|
|
run: cargo nextest run --verbose tests::mock_hashed_output_::t --test-threads 32
|
|
- name: hashed inputs + params + outputs
|
|
run: cargo nextest run --verbose tests::mock_hashed_all_::t --test-threads 32
|
|
- name: hashed inputs + fixed params
|
|
run: cargo nextest run --verbose tests::mock_hashed_output_fixed_params_::t --test-threads 32
|
|
|
|
prove-and-verify-evm-tests:
|
|
permissions:
|
|
contents: read
|
|
runs-on: [non-gpu, non-sgx]
|
|
needs: [build, library-tests, docs]
|
|
env:
|
|
EVM_VERIFIER_EZKL_TOKEN: ${{ secrets.EVM_VERIFIER_EZKL_TOKEN }}
|
|
RUSTFLAGS: "-C target-feature=+atomics,+bulk-memory"
|
|
OPENSSL_NO_VENDOR: 1
|
|
|
|
steps:
|
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 #v4.2.2
|
|
with:
|
|
persist-credentials: false
|
|
|
|
- uses: actions-rust-lang/setup-rust-toolchain@fb51252c7ba57d633bc668f941da052e410add48 #v1.0.6
|
|
with:
|
|
toolchain: nightly-2025-05-01
|
|
override: true
|
|
components: rustfmt, clippy
|
|
- uses: baptiste0928/cargo-install@91c5da15570085bcde6f4d7aed98cb82d6769fd3 #v3.3.0
|
|
with:
|
|
crate: cargo-nextest
|
|
locked: true
|
|
- name: Force rebuild icicle dependencies
|
|
run: cargo clean -p icicle-runtime -p icicle-core -p icicle-hash -p icicle-bn254
|
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 #v4.2.2
|
|
with:
|
|
persist-credentials: false
|
|
- name: "Add rust-src"
|
|
run: rustup component add rust-src --toolchain nightly-2025-05-01-x86_64-unknown-linux-gnu
|
|
# - name: Install solc
|
|
# run: (hash svm 2>/dev/null || cargo install svm-rs) && svm install 0.8.20 && solc --version
|
|
- name: Install Anvil
|
|
run: cargo install --git https://github.com/foundry-rs/foundry --rev 56b806a3ba7866a3b061093bebd0fa2ace97f1fc --locked anvil --force
|
|
- name: KZG prove and verify tests (EVM)
|
|
run: cargo nextest run --verbose "tests_evm::kzg_evm_prove_and_verify_::" --test-threads 1
|
|
# - name: KZG prove and verify tests (EVM + reusable verifier + col-overflow)
|
|
# run: cargo nextest run --verbose tests_evm::kzg_evm_prove_and_verify_reusable_verifier --features reusable-verifier --test-threads 1
|
|
- name: KZG prove and verify tests (EVM + kzg all)
|
|
run: cargo nextest run --verbose tests_evm::kzg_evm_kzg_all_prove_and_verify --test-threads 1
|
|
- name: KZG prove and verify tests (EVM + kzg inputs)
|
|
run: cargo nextest run --verbose tests_evm::kzg_evm_kzg_input_prove_and_verify --test-threads 1
|
|
- name: KZG prove and verify tests (EVM + kzg params)
|
|
run: cargo nextest run --verbose tests_evm::kzg_evm_kzg_params_prove_and_verify --test-threads 1
|
|
- name: KZG prove and verify tests (EVM + hashed inputs)
|
|
run: cargo nextest run --verbose tests_evm::kzg_evm_hashed_input_prove_and_verify --test-threads 1
|
|
- name: KZG prove and verify tests (EVM + hashed params)
|
|
run: cargo nextest run --verbose tests_evm::kzg_evm_hashed_params_prove_and_verify --test-threads 1
|
|
- name: KZG prove and verify tests (EVM + hashed outputs)
|
|
run: cargo nextest run --verbose tests_evm::kzg_evm_hashed_output_prove_and_verify --test-threads 1
|
|
|
|
prove-and-verify-tests:
|
|
permissions:
|
|
contents: read
|
|
runs-on: [non-gpu, non-sgx]
|
|
env:
|
|
EVM_VERIFIER_EZKL_TOKEN: ${{ secrets.EVM_VERIFIER_EZKL_TOKEN }}
|
|
|
|
steps:
|
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 #v4.2.2
|
|
with:
|
|
persist-credentials: false
|
|
|
|
- uses: actions-rust-lang/setup-rust-toolchain@fb51252c7ba57d633bc668f941da052e410add48 #v1.0.6
|
|
with:
|
|
toolchain: nightly-2025-05-01
|
|
override: true
|
|
components: rustfmt, clippy
|
|
- name: Add rust-src
|
|
run: rustup component add rust-src --toolchain nightly-2025-05-01-x86_64-unknown-linux-gnu
|
|
- name: Force rebuild icicle dependencies
|
|
run: cargo clean -p icicle-runtime -p icicle-core -p icicle-hash -p icicle-bn254
|
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 #v4.2.2
|
|
with:
|
|
persist-credentials: false
|
|
- uses: baptiste0928/cargo-install@91c5da15570085bcde6f4d7aed98cb82d6769fd3 #v3.3.0
|
|
with:
|
|
crate: cargo-nextest
|
|
locked: true
|
|
- name: KZG prove and verify tests (public outputs + column overflow)
|
|
run: cargo nextest run --verbose tests::kzg_prove_and_verify_with_overflow_::t
|
|
- name: KZG prove and verify tests (public outputs + fixed params + column overflow)
|
|
run: cargo nextest run --verbose tests::kzg_prove_and_verify_with_overflow_fixed_params_
|
|
- name: KZG prove and verify tests (hashed inputs + column overflow)
|
|
run: cargo nextest run --verbose tests::kzg_prove_and_verify_with_overflow_hashed_inputs_
|
|
- name: KZG prove and verify tests (public outputs)
|
|
run: cargo nextest run --verbose tests::kzg_prove_and_verify_tight_lookup_::t
|
|
- name: KZG prove and verify tests single inner col
|
|
run: cargo nextest run --verbose tests::kzg_prove_and_verify_single_col
|
|
- name: KZG prove and verify tests triple inner col
|
|
run: cargo nextest run --verbose tests::kzg_prove_and_verify_triple_col
|
|
- name: KZG prove and verify tests quadruple inner col
|
|
run: cargo nextest run --verbose tests::kzg_prove_and_verify_quadruple_col
|
|
- name: KZG prove and verify tests octuple inner col
|
|
run: cargo nextest run --verbose tests::kzg_prove_and_verify_octuple_col --test-threads 8
|
|
- name: KZG prove and verify tests (kzg outputs)
|
|
run: cargo nextest run --verbose tests::kzg_prove_and_verify_kzg_output
|
|
- name: KZG prove and verify tests (public outputs)
|
|
run: cargo nextest run --verbose tests::kzg_prove_and_verify_::t
|
|
- name: KZG prove and verify tests (public inputs)
|
|
run: cargo nextest run --verbose tests::kzg_prove_and_verify_public_input
|
|
- name: KZG prove and verify tests (fixed params)
|
|
run: cargo nextest run --verbose tests::kzg_prove_and_verify_fixed_params
|
|
- name: KZG prove and verify tests (hashed outputs)
|
|
run: cargo nextest run --verbose tests::kzg_prove_and_verify_hashed
|
|
|
|
prove-and-verify-tests-gpu:
|
|
permissions:
|
|
contents: read
|
|
runs-on: gpu
|
|
needs: [build, library-tests, docs]
|
|
env:
|
|
ENABLE_ICICLE_GPU: true
|
|
EVM_VERIFIER_EZKL_TOKEN: ${{ secrets.EVM_VERIFIER_EZKL_TOKEN }}
|
|
RUSTFLAGS: "-C linker=gcc"
|
|
OPENSSL_NO_VENDOR: 1
|
|
steps:
|
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 #v4.2.2
|
|
with:
|
|
persist-credentials: false
|
|
- uses: actions-rust-lang/setup-rust-toolchain@fb51252c7ba57d633bc668f941da052e410add48 #v1.0.6
|
|
with:
|
|
toolchain: nightly-2025-05-01
|
|
override: true
|
|
components: rustfmt, clippy
|
|
- name: Add rust-src
|
|
run: rustup component add rust-src --toolchain nightly-2025-05-01-x86_64-unknown-linux-gnu
|
|
- uses: baptiste0928/cargo-install@91c5da15570085bcde6f4d7aed98cb82d6769fd3 #v3.3.0
|
|
with:
|
|
crate: cargo-nextest
|
|
locked: true
|
|
- name: Setup GPU dependencies
|
|
run: sudo ./setup-gpu.sh --yes
|
|
- name: Install build dependencies
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y build-essential g++ gcc cmake libclang-dev llvm-dev libstdc++-12-dev libc6 libc6-dev libssl-dev pkg-config
|
|
- name: Force rebuild icicle dependencies
|
|
run: cargo clean -p icicle-runtime -p icicle-core -p icicle-hash -p icicle-bn254
|
|
- name: KZG prove and verify tests (kzg outputs)
|
|
run: cargo nextest run --verbose tests::kzg_prove_and_verify_kzg_output --features gpu-accelerated --test-threads 1
|
|
- name: KZG prove and verify tests (public outputs + column overflow)
|
|
run: cargo nextest run --verbose tests::kzg_prove_and_verify_with_overflow_::t --features gpu-accelerated --test-threads 1
|
|
- name: KZG prove and verify tests (public outputs + fixed params + column overflow)
|
|
run: cargo nextest run --verbose tests::kzg_prove_and_verify_with_overflow_fixed_params_ --features gpu-accelerated --test-threads 1
|
|
- name: KZG prove and verify tests (public outputs)
|
|
run: cargo nextest run --verbose tests::kzg_prove_and_verify_::t --features gpu-accelerated --test-threads 1
|
|
- name: KZG prove and verify tests (public inputs)
|
|
run: cargo nextest run --verbose tests::kzg_prove_and_verify_public_input --features gpu-accelerated --test-threads 1
|
|
- name: KZG prove and verify tests (fixed params)
|
|
run: cargo nextest run --verbose tests::kzg_prove_and_verify_fixed_params --features gpu-accelerated --test-threads 1
|
|
- name: KZG prove and verify tests (hashed outputs)
|
|
run: cargo nextest run --verbose tests::kzg_prove_and_verify_hashed --features gpu-accelerated --test-threads 1
|
|
|
|
examples:
|
|
permissions:
|
|
contents: read
|
|
runs-on: ubuntu-22.04
|
|
needs: [build, library-tests, docs]
|
|
env:
|
|
EVM_VERIFIER_EZKL_TOKEN: ${{ secrets.EVM_VERIFIER_EZKL_TOKEN }}
|
|
RUSTFLAGS: "-C linker=gcc"
|
|
OPENSSL_NO_VENDOR: 1
|
|
|
|
steps:
|
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 #v4.2.2
|
|
with:
|
|
persist-credentials: false
|
|
|
|
- uses: actions-rust-lang/setup-rust-toolchain@fb51252c7ba57d633bc668f941da052e410add48 #v1.0.6
|
|
with:
|
|
toolchain: nightly-2025-05-01
|
|
override: true
|
|
components: rustfmt, clippy
|
|
- name: install libc6
|
|
run: sudo apt-get install -y libc6
|
|
- name: Install cmake and build dependencies
|
|
run: sudo apt-get update && sudo apt-get install -y cmake build-essential g++ gcc libclang-dev llvm-dev libstdc++-12-dev libc6-dev libssl-dev pkg-config
|
|
- name: Force rebuild icicle dependencies
|
|
run: cargo clean -p icicle-runtime -p icicle-core -p icicle-hash -p icicle-bn254
|
|
- uses: baptiste0928/cargo-install@91c5da15570085bcde6f4d7aed98cb82d6769fd3 #v3.3.0
|
|
with:
|
|
crate: cargo-nextest
|
|
locked: true
|
|
- name: Examples
|
|
run: cargo nextest run --release tests_examples
|
|
|
|
python-tests:
|
|
permissions:
|
|
contents: read
|
|
runs-on: [non-gpu, non-sgx]
|
|
needs: [build, library-tests, docs]
|
|
env:
|
|
EVM_VERIFIER_EZKL_TOKEN: ${{ secrets.EVM_VERIFIER_EZKL_TOKEN }}
|
|
|
|
steps:
|
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 #v4.2.2
|
|
with:
|
|
persist-credentials: false
|
|
|
|
- uses: actions/setup-python@b64ffcaf5b410884ad320a9cfac8866006a109aa #v4.8.0
|
|
with:
|
|
python-version: "3.12"
|
|
- uses: actions-rust-lang/setup-rust-toolchain@fb51252c7ba57d633bc668f941da052e410add48 #v1.0.6
|
|
with:
|
|
toolchain: nightly-2025-05-01
|
|
override: true
|
|
components: rustfmt, clippy
|
|
- name: Install cmake
|
|
run: sudo apt-get install -y cmake
|
|
# - name: Install solc
|
|
# run: (hash svm 2>/dev/null || cargo install svm-rs) && svm install 0.8.20 && solc --version
|
|
- name: Setup Virtual Env and Install python dependencies
|
|
run: python -m venv .env --clear; source .env/bin/activate; pip install -r requirements.txt;
|
|
- name: Install Anvil
|
|
run: cargo install --git https://github.com/foundry-rs/foundry --rev 56b806a3ba7866a3b061093bebd0fa2ace97f1fc --locked anvil --force
|
|
- name: Build python ezkl
|
|
run: source .env/bin/activate; unset CONDA_PREFIX; maturin develop --features python-bindings,reusable-verifier --profile=test-runs
|
|
- name: Run pytest
|
|
run: source .env/bin/activate; pip install pytest-asyncio; pytest -vv
|
|
|
|
accuracy-measurement-tests:
|
|
permissions:
|
|
contents: read
|
|
runs-on: [non-gpu, non-sgx]
|
|
needs: [build, library-tests, docs]
|
|
env:
|
|
EVM_VERIFIER_EZKL_TOKEN: ${{ secrets.EVM_VERIFIER_EZKL_TOKEN }}
|
|
|
|
steps:
|
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 #v4.2.2
|
|
with:
|
|
persist-credentials: false
|
|
|
|
- uses: actions/setup-python@b64ffcaf5b410884ad320a9cfac8866006a109aa #v4.8.0
|
|
with:
|
|
python-version: "3.12"
|
|
- uses: actions-rust-lang/setup-rust-toolchain@fb51252c7ba57d633bc668f941da052e410add48 #v1.0.6
|
|
with:
|
|
toolchain: nightly-2025-05-01
|
|
override: true
|
|
components: rustfmt, clippy
|
|
- uses: baptiste0928/cargo-install@91c5da15570085bcde6f4d7aed98cb82d6769fd3 #v3.3.0
|
|
with:
|
|
crate: cargo-nextest
|
|
locked: true
|
|
- name: Setup Virtual Env and Install python dependencies
|
|
run: python -m venv .env --clear; source .env/bin/activate; pip install -r requirements.txt;
|
|
- name: Build python ezkl
|
|
run: source .env/bin/activate; unset CONDA_PREFIX; maturin develop --features python-bindings,reusable-verifier --profile=test-runs
|
|
- name: Public inputs
|
|
run: source .env/bin/activate; cargo nextest run --verbose tests::accuracy_measurement_public_inputs_
|
|
- name: fixed params
|
|
run: source .env/bin/activate; cargo nextest run --verbose tests::accuracy_measurement_fixed_params_
|
|
- name: Public outputs
|
|
run: source .env/bin/activate; cargo nextest run --verbose tests::accuracy_measurement_public_outputs_
|
|
- name: Public outputs + resources
|
|
run: source .env/bin/activate; cargo nextest run --verbose tests::resources_accuracy_measurement_public_outputs_
|
|
|
|
python-integration-tests:
|
|
permissions:
|
|
contents: read
|
|
runs-on: large-self-hosted
|
|
needs: [build, library-tests, docs, python-tests]
|
|
env:
|
|
EVM_VERIFIER_EZKL_TOKEN: ${{ secrets.EVM_VERIFIER_EZKL_TOKEN }}
|
|
|
|
steps:
|
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 #v4.2.2
|
|
with:
|
|
persist-credentials: false
|
|
|
|
- uses: actions/setup-python@b64ffcaf5b410884ad320a9cfac8866006a109aa #v4.8.0
|
|
with:
|
|
python-version: "3.11"
|
|
- uses: actions-rust-lang/setup-rust-toolchain@fb51252c7ba57d633bc668f941da052e410add48 #v1.0.6
|
|
with:
|
|
toolchain: nightly-2025-05-01
|
|
override: true
|
|
components: rustfmt, clippy
|
|
- uses: baptiste0928/cargo-install@91c5da15570085bcde6f4d7aed98cb82d6769fd3 #v3.3.0
|
|
with:
|
|
crate: cargo-nextest
|
|
locked: true
|
|
# - name: Install solc
|
|
# run: (hash svm 2>/dev/null || cargo install svm-rs) && svm install 0.8.20 && solc --version
|
|
- name: Install Anvil
|
|
run: cargo install --git https://github.com/foundry-rs/foundry --rev 56b806a3ba7866a3b061093bebd0fa2ace97f1fc --locked anvil --force
|
|
- name: Install pip
|
|
run: python -m ensurepip --upgrade
|
|
- name: Setup Virtual Env and Install python dependencies
|
|
run: python -m venv .env --clear; source .env/bin/activate; pip install -r requirements.txt; python -m ensurepip --upgrade
|
|
- name: Build python ezkl
|
|
run: source .env/bin/activate; unset CONDA_PREFIX; maturin develop --features python-bindings,reusable-verifier --profile=test-runs
|
|
- name: Cat and Dog notebook
|
|
run: source .env/bin/activate; cargo nextest run py_tests::tests::cat_and_dog_notebook_
|
|
- name: All notebooks
|
|
run: source .env/bin/activate; cargo nextest run py_tests::tests::run_notebook_ --test-threads 1
|
|
- name: Voice tutorial
|
|
run: source .env/bin/activate; cargo nextest run py_tests::tests::voice_
|
|
- name: Neural bow
|
|
run: source .env/bin/activate; cargo nextest run py_tests::tests::neural_bag_of_words_ --no-capture
|
|
- name: Felt conversion
|
|
run: source .env/bin/activate; cargo nextest run py_tests::tests::felt_conversion_test_ --no-capture
|
|
- name: Tictactoe tutorials
|
|
run: source .env/bin/activate; cargo nextest run py_tests::tests::tictactoe_ --test-threads 1
|
|
# - name: authenticate-kaggle-cli
|
|
# shell: bash
|
|
# env:
|
|
# KAGGLE_API_KEY: ${{ secrets.KAGGLE_API_KEY }}
|
|
# run: |
|
|
# mkdir /home/ubuntu/.kaggle
|
|
# # now dump the contents of the file into a file called kaggle.json
|
|
# echo $KAGGLE_API_KEY > /home/ubuntu/.kaggle/kaggle.json
|
|
# chmod 600 /home/ubuntu/.kaggle/kaggle.json
|
|
- name: NBEATS tutorial
|
|
run: source .env/bin/activate; cargo nextest run py_tests::tests::nbeats_
|
|
# - name: Reusable verifier tutorial
|
|
# run: source .env/bin/activate; cargo nextest run py_tests::tests::reusable_verifier_ --no-capture
|
|
- name: Reusable verifier tutorial
|
|
run: source .env/bin/activate; cargo nextest run py_tests::tests::reusable_verifier_ --no-capture --test-threads 1
|