feat: allow custom lookup paths for nonlinear ops and fix Python GIL deadlock #5033
Workflow file for this run
This file contains hidden or 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: 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-12-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-12-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-12-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-12-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-12-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-12-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-12-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-12-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-12-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-12-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 c11315be56183bcbc13235475045670542d542ba --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-12-01 | |
| override: true | |
| components: rustfmt, clippy | |
| - name: Add rust-src | |
| run: rustup component add rust-src --toolchain nightly-2025-12-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-12-01 | |
| override: true | |
| components: rustfmt, clippy | |
| - name: Add rust-src | |
| run: rustup component add rust-src --toolchain nightly-2025-12-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-12-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-12-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 c11315be56183bcbc13235475045670542d542ba --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-12-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-12-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 c11315be56183bcbc13235475045670542d542ba --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 |