name: Test on: [pull_request, push] jobs: build_test: name: test-${{ matrix.os }}-${{ matrix.test-framework }} runs-on: ${{ matrix.os }} env: configuration: Release artifacts: ${{ github.workspace }}/artifacts DOTNET_NOLOGO : 1 strategy: matrix: os: [windows-latest, ubuntu-20.04, macos-latest] test-framework: [netcoreapp3.1, net5.0] include: - os: ubuntu-20.04 test-framework: netcoreapp3.1 installSnap7: true dotnet-sdk: '3.1.x' - os: ubuntu-20.04 test-framework: net5.0 installSnap7: true dotnet-sdk: '5.0.x' - os: macos-latest test-framework: netcoreapp3.1 installSnap7: true dotnet-sdk: '3.1.x' - os: macos-latest test-framework: net5.0 installSnap7: true dotnet-sdk: '5.0.x' - os: windows-latest test-framework: netcoreapp3.1 dotnet-sdk: '3.1.x' - os: windows-latest test-framework: net5.0 dotnet-sdk: '5.0.x' - os: windows-latest test-framework: net452 dotnet-sdk: '5.0.x' fail-fast: false steps: - uses: actions/checkout@v2 - name: Install Snap7 Linux if: ${{ matrix.installSnap7 && matrix.os == 'ubuntu-20.04' }} run: | sudo add-apt-repository ppa:gijzelaar/snap7 sudo apt-get update sudo apt-get install libsnap7-1 libsnap7-dev - name: Install Snap7 MacOs if: ${{ matrix.installSnap7 && matrix.os == 'macos-latest' }} run: | brew install snap7 - name: Setup Dotnet uses: actions/setup-dotnet@v1 with: dotnet-version: ${{ matrix.dotnet-sdk }} - name: Nuget Cache uses: actions/cache@v2 with: path: ~/.nuget/packages # Look to see if there is a cache hit for the corresponding requirements file key: ${{ runner.os }}-${{ matrix.test-framework }}-nuget-${{ hashFiles('**/packages.lock.json') }} restore-keys: | ${{ runner.os }}-${{ matrix.test-framework }}-nuget - name: Restore run: dotnet restore S7.Net.UnitTest - name: Test run: dotnet test --no-restore --nologo --verbosity normal --logger GitHubActions --framework ${{ matrix.test-framework }}