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.*