conspire 0.7.7

The Rust interface to conspire.
Documentation
name: Test
concurrency:
  cancel-in-progress: true
  group: ${{ github.workflow }}-${{ github.head_ref }}
env:
  CARGO_TERM_COLOR: always
on:
  pull_request:
    branches: main
permissions: {}
jobs:
  Checks:
    strategy:
      fail-fast: true
      matrix:
        features:
          - math
          - io
          - geometry
          - mechanics
          - physics
          - constitutive
          - fem
          - vem
          - all
        os: [macos-latest, windows-latest, ubuntu-latest]
        toolchain: [beta, stable]
    runs-on: ${{ matrix.os }}
    steps:
      - name: Checkout
        uses: actions/checkout@v7
      - name: Toolchain
        uses: dtolnay/rust-toolchain@6c977a6ca4077a0ceb28ffbe03f59d46e9ac8772
        with:
          components: clippy, rustfmt
          toolchain: ${{ matrix.toolchain }}
      - name: Format
        run: cargo fmt --all -- --check
      - name: Clippy
        run: cargo clippy --release --features ${{ matrix.features }} -- -D warnings
      - name: Clippy tests
        run: cargo clippy --release --features ${{ matrix.features }} --tests -- -D warnings
      - name: Test
        run: cargo test --release --features ${{ matrix.features }}
  Coverage:
    strategy:
      fail-fast: true
      matrix:
        features:
          - math
          - io
          - geometry
          - mechanics
          - physics
          - constitutive
          # - fem
          # - vem
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v7
      - name: Toolchain
        uses: dtolnay/rust-toolchain@6c977a6ca4077a0ceb28ffbe03f59d46e9ac8772
        with:
          toolchain: stable
      - name: Install
        run: cargo install cargo-llvm-cov
      - name: Coverage
        if:  matrix.features == 'io'
        run: cargo llvm-cov test --profile release --features ${{ matrix.features }} --fail-under-functions 100 --fail-under-lines 100 --fail-under-regions 99
      - name: Coverage
        if:  matrix.features != 'io'
        run: cargo llvm-cov test --profile release --features ${{ matrix.features }} --fail-under-functions 50 --fail-under-lines 50 --fail-under-regions 50
      - name: Tree
        run: $([[ $(cargo tree --color always --edges normal --features ${{ matrix.features }} | wc -l) -eq 1 ]])