blockset 0.3.1

Data Block Set
Documentation
name: Rust

on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]

env:
  CARGO_TERM_COLOR: always

jobs:
  fmt:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - run: cargo fmt -- --check

  clippy:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - run: cargo clippy -- -D warnings

  test-wasm:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: cargo install wasm-pack
      - run: wasm-pack test --node --release

  test:
    strategy:
      matrix:
        # https://docs.github.com/en/actions/using-jobs/choosing-the-runner-for-a-job#choosing-github-hosted-runners
        os: [windows-latest, ubuntu-latest, macos-13]
        type: ['', '--release']
    runs-on: ${{ matrix.os }}
    steps:
    - uses: actions/checkout@v4
    - run: cargo test ${{ matrix.type }}

  coverage:
    runs-on: macos-13
    steps:
    - uses: actions/checkout@v4
    - run: cargo install cargo-tarpaulin
    - run: cargo c
    - uses: actions/upload-artifact@v3
      with:
        path: tarpaulin-report.html
      if: always()