mirror of
https://github.com/vacp2p/zerokit.git
synced 2026-01-08 22:18:01 -05:00
- Tested the parallel feature for rln-wasm on this branch: https://github.com/vacp2p/zerokit/tree/benchmark-v0.9.0 - Simplified the test case by using the default generated witness_calculator.js file for both Node and browser tests - Added a WASM parallel test case using the latest wasm-bindgen-rayon version 1.3.0 - [Successful CI run](https://github.com/vacp2p/zerokit/actions/runs/16570298449) with Cargo.lock is included, but it fails if ignored from the codebase. - Requires publishing new pmtree version [on this PR](https://github.com/vacp2p/pmtree/pull/4) before merging this branch.
200 lines
5.8 KiB
YAML
200 lines
5.8 KiB
YAML
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
paths-ignore:
|
|
- "**.md"
|
|
- "!.github/workflows/*.yml"
|
|
- "!rln-wasm/**"
|
|
- "!rln/src/**"
|
|
- "!rln/resources/**"
|
|
- "!utils/src/**"
|
|
pull_request:
|
|
paths-ignore:
|
|
- "**.md"
|
|
- "!.github/workflows/*.yml"
|
|
- "!rln-wasm/**"
|
|
- "!rln/src/**"
|
|
- "!rln/resources/**"
|
|
- "!utils/src/**"
|
|
|
|
name: Tests
|
|
|
|
jobs:
|
|
utils-test:
|
|
strategy:
|
|
matrix:
|
|
platform: [ubuntu-latest, macos-latest]
|
|
crate: [utils]
|
|
runs-on: ${{ matrix.platform }}
|
|
timeout-minutes: 60
|
|
|
|
name: Test - ${{ matrix.crate }} - ${{ matrix.platform }}
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v4
|
|
- name: Install stable toolchain
|
|
uses: dtolnay/rust-toolchain@stable
|
|
- uses: Swatinem/rust-cache@v2
|
|
- name: Install dependencies
|
|
run: make installdeps
|
|
- name: Test utils
|
|
run: |
|
|
cargo make test --release
|
|
working-directory: ${{ matrix.crate }}
|
|
|
|
rln-test:
|
|
strategy:
|
|
matrix:
|
|
platform: [ubuntu-latest, macos-latest]
|
|
crate: [rln]
|
|
feature: ["default", "stateless"]
|
|
runs-on: ${{ matrix.platform }}
|
|
timeout-minutes: 60
|
|
|
|
name: Test - ${{ matrix.crate }} - ${{ matrix.platform }} - ${{ matrix.feature }}
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v4
|
|
- name: Install stable toolchain
|
|
uses: dtolnay/rust-toolchain@stable
|
|
- uses: Swatinem/rust-cache@v2
|
|
- name: Install dependencies
|
|
run: make installdeps
|
|
- name: Test rln
|
|
run: |
|
|
if [ ${{ matrix.feature }} == default ]; then
|
|
cargo make test --release
|
|
else
|
|
cargo make test_${{ matrix.feature }} --release
|
|
fi
|
|
working-directory: ${{ matrix.crate }}
|
|
|
|
rln-wasm-test:
|
|
strategy:
|
|
matrix:
|
|
platform: [ubuntu-latest, macos-latest]
|
|
crate: [rln-wasm]
|
|
feature: ["default"]
|
|
runs-on: ${{ matrix.platform }}
|
|
timeout-minutes: 60
|
|
|
|
name: Test - ${{ matrix.crate }} - ${{ matrix.platform }} - ${{ matrix.feature }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Install stable toolchain
|
|
uses: dtolnay/rust-toolchain@stable
|
|
- uses: Swatinem/rust-cache@v2
|
|
- name: Install dependencies
|
|
run: make installdeps
|
|
- name: Build rln-wasm
|
|
run: cargo make build
|
|
working-directory: ${{ matrix.crate }}
|
|
- name: Test rln-wasm on node
|
|
run: cargo make test --release
|
|
working-directory: ${{ matrix.crate }}
|
|
- name: Test rln-wasm on browser
|
|
run: cargo make test_browser --release
|
|
working-directory: ${{ matrix.crate }}
|
|
|
|
rln-wasm-parallel-test:
|
|
strategy:
|
|
matrix:
|
|
platform: [ubuntu-latest, macos-latest]
|
|
crate: [rln-wasm]
|
|
feature: ["parallel"]
|
|
runs-on: ${{ matrix.platform }}
|
|
timeout-minutes: 60
|
|
|
|
name: Test - ${{ matrix.crate }} - ${{ matrix.platform }} - ${{ matrix.feature }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Install nightly toolchain
|
|
uses: dtolnay/rust-toolchain@nightly
|
|
with:
|
|
components: rust-src
|
|
targets: wasm32-unknown-unknown
|
|
- uses: Swatinem/rust-cache@v2
|
|
- name: Install dependencies
|
|
run: make installdeps
|
|
- name: Build rln-wasm in parallel mode
|
|
run: cargo make build_parallel
|
|
working-directory: ${{ matrix.crate }}
|
|
- name: Test rln-wasm in parallel mode on browser
|
|
run: cargo make test_parallel --release
|
|
working-directory: ${{ matrix.crate }}
|
|
|
|
lint:
|
|
strategy:
|
|
matrix:
|
|
# we run lint tests only on ubuntu
|
|
platform: [ubuntu-latest]
|
|
crate: [rln, rln-wasm, utils]
|
|
runs-on: ${{ matrix.platform }}
|
|
timeout-minutes: 60
|
|
|
|
name: lint - ${{ matrix.crate }} - ${{ matrix.platform }}
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v4
|
|
- name: Install stable toolchain
|
|
uses: dtolnay/rust-toolchain@stable
|
|
with:
|
|
components: rustfmt, clippy
|
|
- uses: Swatinem/rust-cache@v2
|
|
- name: Install dependencies
|
|
run: make installdeps
|
|
- name: Check formatting
|
|
if: success() || failure()
|
|
run: cargo fmt -- --check
|
|
working-directory: ${{ matrix.crate }}
|
|
- name: Check clippy
|
|
if: success() || failure()
|
|
run: |
|
|
cargo clippy --all-targets --release -- -D warnings
|
|
working-directory: ${{ matrix.crate }}
|
|
|
|
benchmark-utils:
|
|
# run only in pull requests
|
|
if: github.event_name == 'pull_request'
|
|
strategy:
|
|
matrix:
|
|
# we run benchmark tests only on ubuntu
|
|
platform: [ubuntu-latest]
|
|
crate: [utils]
|
|
runs-on: ${{ matrix.platform }}
|
|
timeout-minutes: 60
|
|
|
|
name: benchmark - ${{ matrix.crate }} - ${{ matrix.platform }}
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v4
|
|
- uses: Swatinem/rust-cache@v2
|
|
- uses: boa-dev/criterion-compare-action@v3
|
|
with:
|
|
branchName: ${{ github.base_ref }}
|
|
cwd: ${{ matrix.crate }}
|
|
|
|
benchmark-rln:
|
|
# run only in pull requests
|
|
if: github.event_name == 'pull_request'
|
|
strategy:
|
|
matrix:
|
|
# we run benchmark tests only on ubuntu
|
|
platform: [ubuntu-latest]
|
|
crate: [rln]
|
|
feature: ["default"]
|
|
runs-on: ${{ matrix.platform }}
|
|
timeout-minutes: 60
|
|
|
|
name: benchmark - ${{ matrix.crate }} - ${{ matrix.platform }} - ${{ matrix.feature }}
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v4
|
|
- uses: Swatinem/rust-cache@v2
|
|
- uses: boa-dev/criterion-compare-action@v3
|
|
with:
|
|
branchName: ${{ github.base_ref }}
|
|
cwd: ${{ matrix.crate }}
|
|
features: ${{ matrix.feature }}
|