|
@@ -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()
|