diff --git a/.github/workflows/dotnet-core.yml b/.github/workflows/dotnet-core.yml index 8d3c3651b..8c49b7f78 100644 --- a/.github/workflows/dotnet-core.yml +++ b/.github/workflows/dotnet-core.yml @@ -13,7 +13,13 @@ on: jobs: build_and_test: - runs-on: ubuntu-latest + runs-on: ${{ matrix.os }} + strategy: + # Turn on fail-fast once we have the tests running on all platforms + fail-fast: false + matrix: + os: [ ubuntu-latest, windows-latest, macos-latest ] + timeout-minutes: 10 steps: @@ -32,13 +38,22 @@ jobs: - name: Build Debug run: dotnet build --configuration Debug --no-restore + - name: Install sed on macOS + if: runner.os == 'macOS' + run: | + brew install gnu-sed + PATH="/opt/homebrew/opt/gnu-sed/libexec/gnubin:$PATH" + sed --version + # See https://github.com/microsoft/vstest/issues/2952 for why the --blame stuff below is needed. # Without it, the test runner crashes on ubuntu (but not Windows)/ - name: Test run: | + PATH="/opt/homebrew/opt/gnu-sed/libexec/gnubin:$PATH" sed -i 's/"stopOnFail": false/"stopOnFail": true/g' UnitTests/xunit.runner.json - dotnet test --verbosity normal --collect:"XPlat Code Coverage" --settings UnitTests/coverlet.runsettings --blame --diag:logs/logs.txt --blame-crash --blame-hang --blame-hang-timeout 60s --blame-crash-collect-always - mv -v UnitTests/TestResults/*/*.* UnitTests/TestResults/ + dotnet test --verbosity normal --collect:"XPlat Code Coverage" --settings UnitTests/coverlet.runsettings --diag:logs/logs.txt --blame --blame-crash --blame-hang --blame-hang-timeout 60s --blame-crash-collect-always + + # mv -v UnitTests/TestResults/*/*.* UnitTests/TestResults/ - name: Upload Test Logs if: always()