Fixes #3930 - Splits tests to Tests/UnitTests
, Tests/IntegrationTests
, Tests/StressTests
#21
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build & Run Unit Tests | |
on: | |
push: | |
branches: [ v2_release, v2_develop ] | |
paths-ignore: | |
- '**.md' | |
pull_request: | |
branches: [ v2_release, v2_develop ] | |
paths-ignore: | |
- '**.md' | |
jobs: | |
build_and_test_debug_non_parallel: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
# Turn off fail-fast to let all runners run even if there are errors | |
fail-fast: true | |
matrix: | |
os: [ ubuntu-latest, windows-latest, macos-latest ] | |
timeout-minutes: 10 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Setup .NET Core | |
uses: actions/setup-dotnet@v4 | |
with: | |
dotnet-version: 8.x | |
dotnet-quality: 'ga' | |
- name: Install dependencies | |
run: | | |
dotnet restore | |
- name: Build Solution Debug | |
run: dotnet build --configuration Debug --no-restore | |
# Test | |
# Note: The --blame and VSTEST_DUMP_PATH stuff is needed to diagnose the test runner crashing on ubuntu/mac | |
# 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 or mac) | |
- name: Set VSTEST_DUMP_PATH | |
shell: bash | |
run: echo "{VSTEST_DUMP_PATH}={logs/${{ runner.os }}/}" >> $GITHUB_ENV | |
- name: Run UnitTests | |
run: | | |
dotnet test Tests/UnitTests --no-build --verbosity normal --collect:"XPlat Code Coverage" --settings Tests/UnitTests/coverlet.runsettings --diag:logs/${{ runner.os }}/logs.txt --blame --blame-crash --blame-hang --blame-hang-timeout 60s --blame-crash-collect-always -- xunit.stopOnFail=true | |
# mv -v Tests/UnitTests/TestResults/*/*.* TestResults/UnitTests/ | |
- name: Upload Test Logs | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: test-logs-${{ runner.os }} | |
path: | | |
logs/ | |
TestResults/UnitTests/ | |
build_and_test_debug_parallel: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
# Turn off fail-fast to let all runners run even if there are errors | |
fail-fast: true | |
matrix: | |
os: [ ubuntu-latest, windows-latest, macos-latest ] | |
timeout-minutes: 10 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Setup .NET Core | |
uses: actions/setup-dotnet@v4 | |
with: | |
dotnet-version: 8.x | |
dotnet-quality: 'ga' | |
- name: Install dependencies | |
run: | | |
dotnet restore | |
- name: Build Solution Debug | |
run: dotnet build --configuration Debug --no-restore | |
# Test | |
# Note: The --blame and VSTEST_DUMP_PATH stuff is needed to diagnose the test runner crashing on ubuntu/mac | |
# 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 or mac) | |
- name: Set VSTEST_DUMP_PATH | |
shell: bash | |
run: echo "{VSTEST_DUMP_PATH}={logs/${{ runner.os }}/}" >> $GITHUB_ENV | |
- name: Run UnitTests | |
run: | | |
dotnet test Tests/UnitTestsParallelizable --no-build --verbosity normal --collect:"XPlat Code Coverage" --settings Tests/UnitTestsParallelizable/coverlet.runsettings --diag:logs/${{ runner.os }}/logs.txt --blame --blame-crash --blame-hang --blame-hang-timeout 60s --blame-crash-collect-always -- xunit.stopOnFail=true | |
# mv -v Tests/UnitTests/TestResults/*/*.* TestResults/UnitTests/ | |
- name: Upload Test Logs | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: test-logs-${{ runner.os }} | |
path: | | |
logs/ | |
TestResults/UnitTestsParallelizable/ | |
build_release: | |
# Ensure that RELEASE builds are not broken | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Setup .NET Core | |
uses: actions/setup-dotnet@v4 | |
with: | |
dotnet-version: 8.x | |
dotnet-quality: 'ga' | |
- name: Build Release Terminal.Gui | |
run: dotnet build Terminal.Gui/Terminal.Gui.csproj --configuration Release | |
- name: Pack Release Terminal.Gui | |
run: dotnet pack Terminal.Gui/Terminal.Gui.csproj --configuration Release --output ./local_packages | |
- name: Build Release Solution | |
run: dotnet build --configuration Release |