name: Build

on:
  push:
    branches: [ 'main*' ]
    paths-ignore:
    - '**.md'
  pull_request:
    branches: [ 'main*' ]
    paths-ignore:
    - '**.md'

jobs:
  build-test:
    strategy:
      fail-fast: false  # ensures the entire test matrix is run, even if one permutation fails
      matrix:
        os: [ windows-latest, ubuntu-latest ]
        version: [ net462, net6.0, net7.0 ]
        exclude:
        - os: ubuntu-latest
          version: net462

    runs-on: ${{ matrix.os }}
    steps:
    - uses: actions/checkout@v3
      with:
        fetch-depth: 0 # fetching all

    - uses: actions/setup-dotnet@v3.0.3
      with:
        dotnet-version: '7.0.x'

    - name: Install dependencies
      run: dotnet restore

    - name: Build
      run: dotnet build --configuration Release --no-restore

    - name: Test ${{ matrix.version }}
      run: dotnet test **/bin/**/${{ matrix.version }}/*Tests.dll --configuration Release --no-build --logger:"console;verbosity=detailed"
