milhouse 0.9.0

Persistent binary merkle tree
Documentation
name: test-suite

on:
  push:
    branches:
      - main
      - 'pr/*'
  pull_request:
env:
  # Deny warnings in CI
  RUSTFLAGS: "-D warnings"
jobs:
  cargo-fmt:
    name: cargo-fmt
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - name: Get latest version of stable Rust
      run: rustup update stable
    - name: Check formatting with cargo fmt
      run: cargo fmt --all -- --check
    - name: Check fuzzer formatting with cargo fmt
      run: cargo fmt --manifest-path fuzz/Cargo.toml --all --check
  clippy:
    name: clippy
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - name: Get latest version of stable Rust
      run: rustup update stable
    - name: Lint code for quality and style with Clippy
      run: cargo clippy --all
  test:
    strategy:
      matrix:
        os: [ubuntu-latest, macos-latest, windows-latest]
    runs-on: ${{ matrix.os }}
    name: test-${{ matrix.os }}
    steps:
    - uses: actions/checkout@v4
    - name: Get latest version of stable Rust
      run: rustup update stable
    - name: Get latest version of nightly Rust
      run: rustup update nightly
    - name: Run tests
      run: cargo test --release
    - name: Check all examples, binaries, etc
      run: cargo check --all-targets
    - name: Check fuzzer targets
      if: matrix.os != 'windows-latest'
      run: cargo +nightly check --manifest-path fuzz/Cargo.toml --all-targets