faer 0.20.2

Linear algebra routines
Documentation
on:
  push:
    branches:
      - main
      - dev
  pull_request:

name: Run Tests

jobs:
  msrv:
    name: msrv-${{ matrix.toolchain }}-${{ matrix.os }}
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        toolchain:
          - 1.81.0
        os:
          - ubuntu-latest
          - windows-latest

    steps:
      - name: Checkout source
        uses: actions/checkout@master

      - name: Install toolchain
        uses: dtolnay/rust-toolchain@master
        with:
          toolchain: ${{ matrix.toolchain }}
          components: llvm-tools-preview

      - uses: Swatinem/rust-cache@v2

      - name: MSRV 1.81.0
        run:
          cargo check &&
          cd ./faer-entity &&
          cargo check

  nostd:
    name: nostd-${{ matrix.toolchain }}-${{ matrix.os }}
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        toolchain:
          - nightly-2024-08-02
        os:
          - ubuntu-latest
          - windows-latest

    steps:
      - name: Checkout source
        uses: actions/checkout@master

      - name: Install toolchain
        uses: dtolnay/rust-toolchain@master
        with:
          toolchain: ${{ matrix.toolchain }}
          components: llvm-tools-preview

      - uses: Swatinem/rust-cache@v2

      - name: nostd
        run:
          cd ./faer-no-std-test &&
          cargo run

  testing:
    name: testing-${{ matrix.toolchain }}-${{ matrix.os }}
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        toolchain:
          - stable
        os:
          - ubuntu-latest
          - windows-latest

    steps:
      - name: Checkout source
        uses: actions/checkout@master

      - name: Install toolchain
        uses: dtolnay/rust-toolchain@master
        with:
          toolchain: ${{ matrix.toolchain }}
          components: llvm-tools-preview

      - uses: Swatinem/rust-cache@v2

      - name: Install latest nextest
        uses: taiki-e/install-action@nextest

      - name: Install cargo-llvm-cov
        uses: taiki-e/install-action@cargo-llvm-cov

      - name: Collect coverage data
        run: cargo llvm-cov nextest --features=unstable --lcov --output-path lcov.info

      - name: Upload coverage data to codecov
        uses: codecov/codecov-action@v3
        with:
          files: lcov.info