blstrs_plus 0.9.0

High-performance implementation of BLS12-381
Documentation
name: CI checks

on: [push, pull_request]

env:
  RUSTFLAGS: "-Dwarnings"

jobs:
  lint:
    name: Lint
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Install Rust
        run: rustup toolchain install 1.87.0 --profile minimal --component rustfmt,clippy
      - name: Check formatting
        run: cargo +1.87.0 fmt --all -- --check
      - name: Check Clippy lints
        run: cargo +1.87.0 clippy --all-targets --all-features -- -D warnings

  test:
    name: Test on ${{ matrix.os }}
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [ubuntu-latest, windows-latest, macos-latest]
    steps:
      - uses: actions/checkout@v4
      - name: Install Rust
        run: rustup toolchain install 1.87.0 --profile minimal
      - name: Run tests
        run: cargo +1.87.0 test --release --all-features

  no-std:
    name: Check no-std target ${{ matrix.target }}
    runs-on: ubuntu-latest
    strategy:
      matrix:
        target:
          - thumbv6m-none-eabi
          - wasm32-unknown-unknown
          - wasm32-wasip1
    steps:
      - uses: actions/checkout@v4
      - name: Install Rust target
        run: |
          rustup toolchain install 1.87.0 --profile minimal
          rustup target add --toolchain 1.87.0 ${{ matrix.target }}
      - name: Build
        run: cargo +1.87.0 build --target ${{ matrix.target }} --no-default-features --features groups,pairings

  docs:
    name: Documentation
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Install nightly Rust
        run: rustup toolchain install nightly --profile minimal
      - name: Build documentation
        run: cargo +nightly doc --all-features --no-deps --document-private-items