diff --git a/.github/workflows/Steeltoe.All.yml b/.github/workflows/Steeltoe.All.yml index a7567b0dc5..1f78290ca2 100644 --- a/.github/workflows/Steeltoe.All.yml +++ b/.github/workflows/Steeltoe.All.yml @@ -21,8 +21,8 @@ env: DOTNET_NOLOGO: true SOLUTION_FILE: 'src/Steeltoe.All.sln' COMMON_TEST_ARGS: >- - --no-build --configuration Release --collect "XPlat Code Coverage" --logger trx --results-directory ${{ github.workspace }}/dumps - --settings coverlet.runsettings --blame-crash --blame-hang-timeout 3m + --no-build --configuration Release --coverage --report-trx --results-directory ${{ github.workspace }}/dumps + --coverage-settings coverage.config --crashdump --hangdump --hangdump-timeout 3m jobs: analyze: @@ -36,9 +36,9 @@ jobs: - os: ubuntu-latest runDockerContainers: true - os: windows-latest - skipFilter: Category!=Integration + skipFilter: '--filter-not-trait "Category=Integration"' - os: macos-latest - skipFilter: Category!=Integration&Category!=SkipOnMacOS + skipFilter: '--filter-not-trait "Category=Integration" --filter-not-trait "Category=SkipOnMacOS"' runs-on: ${{ matrix.os }} continue-on-error: true @@ -82,6 +82,10 @@ jobs: with: persist-credentials: false + - uses: actions/setup-dotnet@v5 + with: + global-json-file: global.json + - name: Restore packages run: dotnet restore ${{ env.SOLUTION_FILE }} /p:Configuration=Release --verbosity minimal @@ -91,20 +95,20 @@ jobs: - name: Set skip filters for tests shell: bash run: | - echo SKIP_FILTER_NO_MEMORY_DUMPS="${{ matrix.skipFilter && format('{0}&Category!=MemoryDumps', matrix.skipFilter) || 'Category!=MemoryDumps' }}" >> $GITHUB_ENV - echo SKIP_FILTER_WITH_MEMORY_DUMPS="${{ matrix.skipFilter && format('{0}&Category=MemoryDumps', matrix.skipFilter) || 'Category=MemoryDumps' }}" >> $GITHUB_ENV + echo SKIP_FILTER_NO_MEMORY_DUMPS="${{ matrix.skipFilter && format('{0} --filter-not-trait Category=MemoryDumps', matrix.skipFilter) || '--filter-not-trait Category=MemoryDumps' }}" >> $GITHUB_ENV + echo SKIP_FILTER_WITH_MEMORY_DUMPS="${{ matrix.skipFilter && format('{0} --filter-trait Category=MemoryDumps', matrix.skipFilter) || '--filter-trait Category=MemoryDumps' }}" >> $GITHUB_ENV - name: Test (net8.0) - run: dotnet test ${{ env.SOLUTION_FILE }} --framework net8.0 --filter "${{ env.SKIP_FILTER_NO_MEMORY_DUMPS }}" ${{ env.COMMON_TEST_ARGS }} + run: dotnet test ${{ env.SOLUTION_FILE }} --framework net8.0 ${{ env.SKIP_FILTER_NO_MEMORY_DUMPS }} ${{ env.COMMON_TEST_ARGS }} - name: Test (net8.0) (memory dumps) - run: dotnet test ${{ env.SOLUTION_FILE }} --framework net8.0 --filter "${{ env.SKIP_FILTER_WITH_MEMORY_DUMPS }}" ${{ env.COMMON_TEST_ARGS }} + run: dotnet test ${{ env.SOLUTION_FILE }} --framework net8.0 ${{ env.SKIP_FILTER_WITH_MEMORY_DUMPS }} ${{ env.COMMON_TEST_ARGS }} - name: Test (net9.0) - run: dotnet test ${{ env.SOLUTION_FILE }} --framework net9.0 --filter "${{ env.SKIP_FILTER_NO_MEMORY_DUMPS }}" ${{ env.COMMON_TEST_ARGS }} + run: dotnet test ${{ env.SOLUTION_FILE }} --framework net9.0 ${{ env.SKIP_FILTER_NO_MEMORY_DUMPS }} ${{ env.COMMON_TEST_ARGS }} - name: Test (net9.0) (memory dumps) - run: dotnet test ${{ env.SOLUTION_FILE }} --framework net9.0 --filter "${{ env.SKIP_FILTER_WITH_MEMORY_DUMPS }}" ${{ env.COMMON_TEST_ARGS }} + run: dotnet test ${{ env.SOLUTION_FILE }} --framework net9.0 ${{ env.SKIP_FILTER_WITH_MEMORY_DUMPS }} ${{ env.COMMON_TEST_ARGS }} - name: Upload crash/hang dumps (on failure) if: ${{ failure() }} diff --git a/.github/workflows/component-management.yml b/.github/workflows/component-management.yml index da124fbeea..2445f92750 100644 --- a/.github/workflows/component-management.yml +++ b/.github/workflows/component-management.yml @@ -31,7 +31,7 @@ jobs: with: component: Management OS: macos - skipFilter: Category!=SkipOnMacOS + skipFilter: '--filter-not-trait Category=SkipOnMacOS' windows: uses: ./.github/workflows/component-shared-workflow.yml diff --git a/.github/workflows/component-shared-workflow.yml b/.github/workflows/component-shared-workflow.yml index 17ca300bc0..b4b04e567b 100644 --- a/.github/workflows/component-shared-workflow.yml +++ b/.github/workflows/component-shared-workflow.yml @@ -26,12 +26,12 @@ env: DOTNET_NOLOGO: true SOLUTION_FILE: src/Steeltoe.${{ inputs.component }}.slnf COMMON_TEST_ARGS: >- - --no-build --configuration Release --collect "XPlat Code Coverage" --logger trx --results-directory ${{ github.workspace }}/dumps - --settings coverlet.runsettings --blame-crash --blame-hang-timeout 3m + --no-build --configuration Release --coverage --report-trx --results-directory ${{ github.workspace }}/dumps + --coverage-settings coverage.config --crashdump --hangdump --hangdump-timeout 3m SKIP_FILTER_NO_MEMORY_DUMPS: >- - ${{ inputs.skipFilter && format('--filter "{0}&Category!=MemoryDumps"', inputs.skipFilter) || '--filter "Category!=MemoryDumps"' }} + ${{ inputs.skipFilter && format('{0} --filter-not-trait "Category=MemoryDumps"', inputs.skipFilter) || '--filter-not-trait "Category=MemoryDumps"' }} SKIP_FILTER_WITH_MEMORY_DUMPS: >- - ${{ inputs.skipFilter && format('--filter "{0}&Category=MemoryDumps"', inputs.skipFilter) || '--filter "Category=MemoryDumps"' }} + ${{ inputs.skipFilter && format('{0} --filter-trait "Category=MemoryDumps"', inputs.skipFilter) || '--filter-trait "Category=MemoryDumps"' }} jobs: build: @@ -79,6 +79,10 @@ jobs: with: persist-credentials: false + - uses: actions/setup-dotnet@v5 + with: + global-json-file: global.json + - name: Restore packages run: dotnet restore ${{ env.SOLUTION_FILE }} /p:Configuration=Release --verbosity minimal diff --git a/.github/workflows/package.yml b/.github/workflows/package.yml index 186049309f..3edd181c0b 100644 --- a/.github/workflows/package.yml +++ b/.github/workflows/package.yml @@ -43,6 +43,10 @@ jobs: with: persist-credentials: false + - uses: actions/setup-dotnet@v5 + with: + global-json-file: global.json + - name: Restore packages run: dotnet restore ${{ env.SOLUTION_FILE }} /p:Configuration=Release --verbosity minimal diff --git a/.github/workflows/scan-vulnerable-dependencies.yml b/.github/workflows/scan-vulnerable-dependencies.yml index aab25e06a7..10d5876214 100644 --- a/.github/workflows/scan-vulnerable-dependencies.yml +++ b/.github/workflows/scan-vulnerable-dependencies.yml @@ -28,11 +28,9 @@ jobs: steps: - name: Setup .NET - uses: actions/setup-dotnet@v4 + uses: actions/setup-dotnet@v5 with: - dotnet-version: | - 8.0.* - 9.0.* + global-json-file: global.json - name: Git checkout uses: actions/checkout@v4 diff --git a/.github/workflows/sonarcube.yml b/.github/workflows/sonarcube.yml index 34f5e0a5e7..2996affab0 100644 --- a/.github/workflows/sonarcube.yml +++ b/.github/workflows/sonarcube.yml @@ -22,8 +22,8 @@ env: DOTNET_NOLOGO: true SOLUTION_FILE: 'src/Steeltoe.All.sln' SONAR_TEST_ARGS: >- - --no-build --configuration Release --collect "XPlat Code Coverage" --logger trx --results-directory ${{ github.workspace }} - --settings coverlet.runsettings -- DataCollectionRunSettings.DataCollectors.DataCollector.Configuration.UseSourceLink=false + --no-build --configuration Release --coverage --report-trx --results-directory ${{ github.workspace }} + --coverage-settings coverage.config jobs: analyze: @@ -64,6 +64,10 @@ jobs: # Sonar: Shallow clones should be disabled for a better relevancy of analysis. fetch-depth: 0 + - uses: actions/setup-dotnet@v5 + with: + global-json-file: global.json + - name: Restore packages run: dotnet restore ${{ env.SOLUTION_FILE }} /p:Configuration=Release --verbosity minimal @@ -79,16 +83,16 @@ jobs: run: dotnet build ${{ env.SOLUTION_FILE }} --no-restore --configuration Release --verbosity minimal - name: Test (net8.0) - run: dotnet test ${{ env.SOLUTION_FILE }} --filter "Category!=MemoryDumps" --framework net8.0 ${{ env.SONAR_TEST_ARGS }} + run: dotnet test ${{ env.SOLUTION_FILE }} --filter-not-trait "Category=MemoryDumps" --framework net8.0 ${{ env.SONAR_TEST_ARGS }} - name: Test (net8.0) (memory dumps) - run: dotnet test ${{ env.SOLUTION_FILE }} --filter "Category=MemoryDumps" --framework net8.0 ${{ env.SONAR_TEST_ARGS }} + run: dotnet test ${{ env.SOLUTION_FILE }} --filter-trait "Category=MemoryDumps" --framework net8.0 ${{ env.SONAR_TEST_ARGS }} - name: Test (net9.0) - run: dotnet test ${{ env.SOLUTION_FILE }} --filter "Category!=MemoryDumps" --framework net9.0 ${{ env.SONAR_TEST_ARGS }} + run: dotnet test ${{ env.SOLUTION_FILE }} --filter-not-trait "Category=MemoryDumps" --framework net9.0 ${{ env.SONAR_TEST_ARGS }} - name: Test (net9.0) (memory dumps) - run: dotnet test ${{ env.SOLUTION_FILE }} --filter "Category=MemoryDumps" --framework net9.0 ${{ env.SONAR_TEST_ARGS }} + run: dotnet test ${{ env.SOLUTION_FILE }} --filter-trait "Category=MemoryDumps" --framework net9.0 ${{ env.SONAR_TEST_ARGS }} - name: End Sonar .NET scanner if: ${{ !cancelled() && steps.sonar_begin.outcome == 'success' }} diff --git a/.github/workflows/verify-code-style.yml b/.github/workflows/verify-code-style.yml index 07859d8a55..2f7be945f5 100644 --- a/.github/workflows/verify-code-style.yml +++ b/.github/workflows/verify-code-style.yml @@ -39,6 +39,10 @@ jobs: persist-credentials: false fetch-depth: 2 + - uses: actions/setup-dotnet@v5 + with: + global-json-file: global.json + - name: Restore tools run: dotnet tool restore --verbosity minimal diff --git a/coverage.config b/coverage.config new file mode 100644 index 0000000000..1a399460fa --- /dev/null +++ b/coverage.config @@ -0,0 +1,26 @@ + + + coverage + + False + True + + + .*ConfigurationSchemaGenerator.* + + + + + ^System\.ObsoleteAttribute$ + ^System\.CodeDom\.Compiler\.GeneratedCodeAttribute$ + ^System\.Runtime\.CompilerServices\.CompilerGeneratedAttribute$ + ^System\.Diagnostics\.CodeAnalysis\.ExcludeFromCodeCoverageAttribute$ + + + + + .*\\test\\.* + + + + \ No newline at end of file diff --git a/coverlet.runsettings b/coverlet.runsettings deleted file mode 100644 index fe0adb82b8..0000000000 --- a/coverlet.runsettings +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - opencover - [ConfigurationSchemaGenerator]* - **/test/**/*.* - ObsoleteAttribute,GeneratedCodeAttribute,CompilerGeneratedAttribute - true - - - - - diff --git a/global.json b/global.json new file mode 100644 index 0000000000..f2782120cd --- /dev/null +++ b/global.json @@ -0,0 +1,8 @@ +{ + "sdk": { + "version": "10.0.100" + }, + "test": { + "runner": "Microsoft.Testing.Platform" + } +} \ No newline at end of file diff --git a/shared-test.props b/shared-test.props index 070739758d..a52c018426 100644 --- a/shared-test.props +++ b/shared-test.props @@ -7,7 +7,7 @@ false - true + true @@ -15,13 +15,16 @@ - + + + + - + diff --git a/src/Configuration/src/Abstractions/CompositeConfigurationProvider.cs b/src/Configuration/src/Abstractions/CompositeConfigurationProvider.cs index b9523cf738..365491056f 100644 --- a/src/Configuration/src/Abstractions/CompositeConfigurationProvider.cs +++ b/src/Configuration/src/Abstractions/CompositeConfigurationProvider.cs @@ -97,10 +97,7 @@ public void Set(string key, string? value) LogSet(GetType().Name, key, value); - if (ConfigurationRoot != null) - { - ConfigurationRoot[key] = value; - } + ConfigurationRoot?[key] = value; } public void Dispose() diff --git a/src/Steeltoe.All.sln b/src/Steeltoe.All.sln index 23230b91f9..ef32cc5fdc 100644 --- a/src/Steeltoe.All.sln +++ b/src/Steeltoe.All.sln @@ -29,7 +29,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_shared", "_shared", "{DC1B ..\.gitattributes = ..\.gitattributes ..\.gitignore = ..\.gitignore ..\cleanupcode.ps1 = ..\cleanupcode.ps1 - ..\coverlet.runsettings = ..\coverlet.runsettings + ..\coverage.config = ..\coverage.config ..\Directory.Build.targets = ..\Directory.Build.targets ..\nuget.config = ..\nuget.config ..\PackageReadme.md = ..\PackageReadme.md diff --git a/src/Tools/test/ConfigurationSchemaGenerator.Tests/ConfigurationSchemaGenerator.Tests.csproj b/src/Tools/test/ConfigurationSchemaGenerator.Tests/ConfigurationSchemaGenerator.Tests.csproj index b3b0ca4194..040cdbbf3d 100644 --- a/src/Tools/test/ConfigurationSchemaGenerator.Tests/ConfigurationSchemaGenerator.Tests.csproj +++ b/src/Tools/test/ConfigurationSchemaGenerator.Tests/ConfigurationSchemaGenerator.Tests.csproj @@ -23,11 +23,14 @@ - + + + + - + diff --git a/versions.props b/versions.props index 07e90fa26a..72edaef21f 100644 --- a/versions.props +++ b/versions.props @@ -6,7 +6,8 @@ --> 9.0.* - 6.0.* + 18.1.* + 2.0.* 7.2.* 3.51.* 4.14.* @@ -27,7 +28,7 @@ 8.12.* 4.9.* 18.0.* - 2.0.* + 3.2.* 3.1.*