Skip to content

feat(common): async thread pool #621

feat(common): async thread pool

feat(common): async thread pool #621

Workflow file for this run

name: Rust
on:
push:
branches: [dev]
pull_request:
branches: [dev]
workflow_dispatch:
env:
CARGO_TERM_COLOR: always
jobs:
build_and_test:
name: "Build and Test"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Rust Stable
uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
- uses: Swatinem/rust-cache@v2.7.7
- name: "Build"
run: cargo build
- name: "Test"
# Run all tests (bins, examples, lib, integration and docs)
# https://doc.rust-lang.org/cargo/commands/cargo-test.html#target-selection
run: cargo test
- name: "Check documentation"
# env:
# RUSTDOCFLAGS: -D warnings
run: cargo doc --no-deps --workspace --lib --document-private-items --examples
rustfmt_and_clippy:
name: Rustfmt and Clippy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Rust Nightly with rustfmt and clippy
uses: dtolnay/rust-toolchain@stable
with:
toolchain: nightly
components: rustfmt, clippy
targets: wasm32-unknown-unknown
- uses: Swatinem/rust-cache@v2.7.7
- name: "Check formatting"
run: cargo +nightly fmt --check --all
- name: Run Clippy
run: cargo +nightly clippy --workspace --exclude mpz-wasm-bench --all-targets --all-features -- -D warnings
- name: Run Clippy on wasm-bench
working-directory: crates/wasm-bench
run: cargo +nightly clippy --lib --target wasm32-unknown-unknown -- -D warnings
wasm:
name: "Build and Test WASM bench"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Rust Nightly with rust-src
uses: dtolnay/rust-toolchain@stable
with:
toolchain: nightly
targets: wasm32-unknown-unknown
components: rust-src
- uses: Swatinem/rust-cache@v2.7.7
- name: Install Chrome
uses: browser-actions/setup-chrome@v2
with:
chrome-version: stable
- name: Build WASM bundle
working-directory: crates/wasm-bench
run: ./build-wasm.sh
- name: Build benchmark runner
run: cargo build --release --bin wasm-bench-runner
- name: Smoke-test in headless Chrome
working-directory: crates/wasm-bench
run: ../../target/release/wasm-bench-runner -b garbler_core/half_gates --iterations 1 --samples 1
miri:
if: ( ! github.event.pull_request.draft )
name: "Test with Miri"
runs-on: ubuntu-latest
env:
# blake3's build.rs cross-compiles NEON asm for aarch64, which requires
# a C cross-compiler the runner doesn't have. Miri can't meaningfully
# interpret the asm anyway, so force the pure-Rust path by setting the
# env var blake3 probes for its `no_neon` cargo feature.
CARGO_FEATURE_NO_NEON: "1"
steps:
- uses: actions/checkout@v4
- name: Install Miri
run: |
rustup toolchain install nightly --component miri
rustup override set nightly
cargo miri setup
- name: Test with Miri on x86_64
run: cargo miri test -p clmul -p matrix-transpose -p mpz-fields --target x86_64-unknown-linux-gnu
- name: Test with Miri on aarch64
run: cargo miri test -p clmul -p matrix-transpose -p mpz-fields --target aarch64-unknown-linux-gnu