Fixes #4410, #4413, #4414, #4415 - MessageBox nullable, Clipboard refactor, fence for legacy/modern App, and makes internal classes thread safe.
#2269
This file contains hidden or 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 Integration Tests | |
| on: | |
| push: | |
| branches: [ v2_release, v2_develop ] | |
| paths-ignore: | |
| - '**.md' | |
| pull_request: | |
| branches: [ v2_release, v2_develop ] | |
| paths-ignore: | |
| - '**.md' | |
| jobs: | |
| build: | |
| uses: ./.github/workflows/quick-build.yml | |
| integration_tests: | |
| name: Integration Tests | |
| runs-on: ${{ matrix.os }} | |
| needs: build | |
| strategy: | |
| fail-fast: false # Let all OSes finish even if one fails | |
| matrix: | |
| os: [ ubuntu-latest, windows-latest, macos-latest ] | |
| timeout-minutes: 15 | |
| 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: Download build artifacts | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: test-build-artifacts | |
| path: . | |
| - name: Restore NuGet packages | |
| run: dotnet restore | |
| - name: Disable Windows Defender (Windows only) | |
| if: runner.os == 'Windows' | |
| shell: powershell | |
| run: | | |
| Add-MpPreference -ExclusionPath "${{ github.workspace }}" | |
| Add-MpPreference -ExclusionProcess "dotnet.exe" | |
| Add-MpPreference -ExclusionProcess "testhost.exe" | |
| Add-MpPreference -ExclusionProcess "VSTest.Console.exe" | |
| - name: Set VSTEST_DUMP_PATH | |
| shell: bash | |
| run: echo "VSTEST_DUMP_PATH=logs/IntegrationTests/${{ runner.os }}/" >> $GITHUB_ENV | |
| - name: Run IntegrationTests | |
| shell: bash | |
| run: | | |
| if [ "${{ runner.os }}" == "Linux" ]; then | |
| # Run with coverage on Linux only | |
| dotnet test Tests/IntegrationTests \ | |
| --no-build \ | |
| --verbosity minimal \ | |
| --collect:"XPlat Code Coverage" \ | |
| --settings Tests/IntegrationTests/runsettings.coverage.xml \ | |
| --diag:logs/IntegrationTests/${{ runner.os }}/logs.txt \ | |
| --blame \ | |
| --blame-crash \ | |
| --blame-hang \ | |
| --blame-hang-timeout 60s \ | |
| --blame-crash-collect-always | |
| else | |
| # Run without coverage on Windows/macOS for speed | |
| dotnet test Tests/IntegrationTests \ | |
| --no-build \ | |
| --verbosity minimal \ | |
| --settings Tests/IntegrationTests/runsettings.xml \ | |
| --diag:logs/IntegrationTests/${{ runner.os }}/logs.txt \ | |
| --blame \ | |
| --blame-crash \ | |
| --blame-hang \ | |
| --blame-hang-timeout 60s \ | |
| --blame-crash-collect-always | |
| fi | |
| - name: Upload Integration Test Logs | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: integration_tests-logs-${{ runner.os }} | |
| path: | | |
| logs/IntegrationTests/ | |
| TestResults/ | |
| - name: Upload Integration Tests Coverage to Codecov | |
| if: matrix.os == 'ubuntu-latest' && always() | |
| uses: codecov/codecov-action@v4 | |
| with: | |
| files: TestResults/**/coverage.cobertura.xml | |
| flags: integrationtests | |
| name: IntegrationTests-${{ runner.os }} | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| fail_ci_if_error: false | |