multiversx-bls 0.2.1

BLS signature library for MultiversX
Documentation
name: CI

on:
  push:
    branches:
      - master
  pull_request:
  workflow_dispatch:

permissions:
  checks: write
  pull-requests: write
    
jobs:
  build-and-test:
    strategy:
      matrix:
        os: [ubuntu-latest, macos-latest]
    runs-on: ${{ matrix.os }}

    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Install Rust toolchain
        uses: dtolnay/rust-toolchain@stable
        with:
          components: clippy

      - name: Run cargo test
        run: cargo test --verbose

      - name: Run cargo clippy (default)
        run: cargo clippy -- -D warnings

      - name: Run cargo clippy (tests)
        run: cargo clippy --tests -- -D warnings

  bench:
    strategy:
      matrix:
        os: [ubuntu-latest, macos-latest]
    runs-on: ${{ matrix.os }}

    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Install Rust toolchain
        uses: dtolnay/rust-toolchain@stable
        with:
          components: clippy

      - name: Run cargo bench
        run: cargo bench --verbose

      - name: Run cargo clippy (bench bls381_benches)
        run: cargo clippy --bench bls381_benches -- -D warnings

      - name: Run cargo clippy (bench multi_verify_benches)
        run: cargo clippy --bench multi_verify_benches -- -D warnings

  build-and-test-windows:
    runs-on: windows-latest

    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Install Rust toolchain
        uses: dtolnay/rust-toolchain@stable
        with:
          components: clippy
          targets: x86_64-pc-windows-gnu

      - name: Add MinGW to PATH
        shell: pwsh
        run: echo "C:\msys64\mingw64\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append

      - name: Run cargo test
        run: cargo test --target x86_64-pc-windows-gnu --verbose

      - name: Run cargo clippy (tests)
        run: cargo clippy --tests --target x86_64-pc-windows-gnu -- -D warnings