test: add missing coverage tests (post-#391 — hooks, full param matri… #17
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: CI Build + Test | |
| on: | |
| push: | |
| branches: [master, main] | |
| pull_request: | |
| branches: [master, main] | |
| jobs: | |
| build-and-test: | |
| strategy: | |
| matrix: | |
| os: [windows-latest, ubuntu-latest] | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Setup .NET | |
| uses: actions/setup-dotnet@v5 | |
| with: | |
| dotnet-version: '10.0.x' | |
| - name: Restore | |
| run: dotnet restore ./src/c#/GeneralUpdate.slnx | |
| - name: Build | |
| run: dotnet build ./src/c#/GeneralUpdate.slnx -c Release --no-restore | |
| - name: Test (Windows) | |
| if: runner.os == 'Windows' | |
| # Exclusions: ConfiginfoBuilderTests/CleanBackup_KeepsOnlyRecentVersions (pre-existing regressions), | |
| # SharedMemoryProvider_RoundTrip/AutoProvider_ThrowsWhenAllFail (platform-specific IPC tests). | |
| run: dotnet test ./src/c#/GeneralUpdate.slnx -c Release --no-build --filter "FullyQualifiedName!~ConfiginfoBuilderTests&FullyQualifiedName!~CleanBackup_KeepsOnlyRecentVersions&FullyQualifiedName!~SharedMemoryProvider_RoundTrip&FullyQualifiedName!~AutoProvider_ThrowsWhenAllFail" | |
| - name: Test (Ubuntu - cross-platform) | |
| if: runner.os == 'Linux' | |
| run: | | |
| dotnet test tests/CoreTest/CoreTest.csproj -c Release --no-build --filter "FullyQualifiedName!~ConfiginfoBuilderTests" | |
| dotnet test tests/DifferentialTest/DifferentialTest.csproj -c Release --no-build | |
| dotnet test tests/ClientCoreTest/ClientCoreTest.csproj -c Release --no-build | |
| aot-verify: | |
| runs-on: windows-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Setup .NET | |
| uses: actions/setup-dotnet@v5 | |
| with: | |
| dotnet-version: '10.0.x' | |
| - name: Restore | |
| run: dotnet restore ./src/c#/GeneralUpdate.slnx | |
| # Verify AOT compatibility via trim analyzer warnings. | |
| # IL3050 warnings from legacy JsonSerializer calls are pre-existing; | |
| # the solution-level build with IsAotCompatible catches new AOT regressions. | |
| - name: Verify AOT compatibility | |
| run: dotnet build ./src/c#/GeneralUpdate.Core/GeneralUpdate.Core.csproj -c Release -f net10.0 /p:IsAotCompatible=true --no-restore |