Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
82 commits
Select commit Hold shift + click to select a range
8457a0e
Bump Steeltoe version from 4.0.0 to 4.0.1.
github-actions[bot] Sep 4, 2025
218cfb4
Remove placeholder packages that were added to help migrate from 3.x …
bart-vmware Sep 5, 2025
c78a342
Update README.md
TimHess Sep 5, 2025
a8c3a98
Fixed: Without any configuration, an app listening on both https and …
bart-vmware Sep 24, 2025
6f7dfa2
Service Discovery: Expose Instance ID in IServiceInstance (#1597)
bart-vmware Sep 24, 2025
68f4fae
Exclude Aspire service discovery resolver from internal HttpClient us…
bart-vmware Sep 24, 2025
176e7da
Set templated=false for all management endpoints
TimHess Sep 24, 2025
2f99497
Expose secure/non-secure URIs on service instance, optimize Eureka (#…
bart-vmware Oct 2, 2025
883f326
Optimize NuGet package restore (#1605)
bart-vmware Oct 16, 2025
cfc15ca
Lower the level of recurring logging to reduce noise in apps (#1608)
bart-vmware Oct 23, 2025
0f06725
Update places where BindConfiguration is called, which registers anon…
bart-vmware Oct 23, 2025
e7bbe72
Capture more diagnostics when memory dump test fails, sync Steeltoe l…
bart-vmware Oct 23, 2025
034e2d0
Update dump dependencies, fix gcdump (#1611)
bart-vmware Oct 30, 2025
936ac0c
Add public method to convert InstanceInfo to EurekaServiceInstance (#…
bart-vmware Nov 11, 2025
5822cdc
Update Steeltoe for .NET 10 (#1615)
bart-vmware Nov 14, 2025
ac04a11
Fix gcdump publish and transitive references (#1619)
bart-vmware Nov 20, 2025
956e891
Fix actuators when used with UsePathBase (#1618)
bart-vmware Nov 20, 2025
1fffc2c
Remove middleware warning, it's not reliable (#1625)
bart-vmware Nov 24, 2025
8df49dd
Prepare for updating tests, small fixes (#1628)
bart-vmware Dec 2, 2025
accee88
Add AGENTS.md with comprehensive build and test documentation (#1627)
Copilot Dec 2, 2025
254b5c6
Accept null tags/meta in Consul responses (#1631)
bart-vmware Dec 5, 2025
939b77a
Various test fixes (#1633)
bart-vmware Dec 15, 2025
eb22697
Configuration Schema Generator: Port changes from https://github.com/…
bart-vmware Dec 18, 2025
16973f2
Fix scoped ASP.NET health checks, correct AddHealthContributor docs (…
bart-vmware Jan 5, 2026
3f7be3e
Update R# code style settings (#1637)
bart-vmware Jan 6, 2026
ca23480
Rename job 'analyze' to 'build' in workflow (#1638)
bart-vmware Jan 9, 2026
91e2d4e
Make skipped tests appear on test summary instead of hiding them enti…
bart-vmware Jan 16, 2026
ece58a0
Update .gitignore (#1643)
bart-vmware Jan 22, 2026
c3aec3d
Add .NET runtime information to /info actuator endpoint (#1640)
Copilot Jan 23, 2026
80b359a
Enable skipping ASP.NET health checks at actuator endpoint (#1644)
bart-vmware Jan 27, 2026
98c6e55
build Steeltoe 4.1
TimHess Jan 28, 2026
eea2880
Package updates (#1646)
bart-vmware Jan 29, 2026
186ff02
Run public-api-mark-shipped.ps1 (#1647)
bart-vmware Jan 30, 2026
da33d9c
Bump Steeltoe version from 4.1.0 to 4.1.1. (#1648)
github-actions[bot] Feb 2, 2026
fbe5079
Fix awkward sentences in comments (#1650)
bart-vmware Feb 5, 2026
ccd55f6
Use source generators for logging and regular expressions (#1652)
bart-vmware Mar 2, 2026
c99e7aa
Fix broken documentation in Steeltoe 4.x (#1655)
bart-vmware Mar 3, 2026
407af87
Use json source generator (#1656)
bart-vmware Mar 11, 2026
58a177b
Fix broken build netsdk 10.0.200, fix green builds on failure (#1657)
bart-vmware Mar 12, 2026
067370c
Fix binding options against null values (#1663)
bart-vmware Mar 16, 2026
972d11d
Fix Eureka Dynamic Port Assignment overriding user-configured ports (…
TimHess Apr 6, 2026
9aa324d
Config Server stability improvements (#1667)
bart-vmware Apr 7, 2026
4659245
Update versions of GitHub Actions (#1668)
bart-vmware Apr 9, 2026
176f7ae
Update AssemblyInfo.cs files to include logging categories for all St…
bart-vmware Apr 9, 2026
d95d9bf
Bump non-exposed NuGet dependencies (#1670)
bart-vmware Apr 10, 2026
5d88bb2
Add IDiscoveryClient.InstancesFetched event (#1672)
bart-vmware Apr 15, 2026
b75cce0
Follow-up changes for new `IDiscoveryClient.InstancesFetched` event (…
bart-vmware Apr 20, 2026
e46e6a5
Gracefully handle when unable to fetch access token in Eureka and Con…
bart-vmware Apr 22, 2026
4594c30
Update to ReSharper v2026.1 (#1681)
bart-vmware Apr 22, 2026
bbf3ee9
R#: Move inline suppressions for AccessToDisposedClosure in tests to …
bart-vmware Apr 23, 2026
e79fcfa
Convert to .slnx format (#1683)
bart-vmware Apr 23, 2026
e061cc0
Revert "R#: Move inline suppressions for AccessToDisposedClosure in t…
bart-vmware Apr 24, 2026
c4c6820
Connectors: add option to turn off the built-in post-processors (#1680)
bart-vmware Apr 24, 2026
af26973
Tweak vulnerability checks (fix broken builds) (#1684)
bart-vmware Apr 29, 2026
ef661b4
Bump OpenTelemetry dependencies to fix vulnerabilities (#1685)
bart-vmware Apr 29, 2026
eac8fc8
Normalize line endings (#1689)
bart-vmware May 1, 2026
f1f03fd
Fix invalid links (#1690)
bart-vmware May 6, 2026
a1c4bd3
Hide transitive vulnerabilities in tests (#1692)
bart-vmware May 11, 2026
42fff3e
Address flaky tests (#1691)
TimHess May 11, 2026
044c1f1
Package updates (#1694)
bart-vmware May 12, 2026
f0dfcf2
Fix flaky certificate tests failing with InvalidOperationException (#…
bart-vmware May 13, 2026
f4d5993
Fix CA1873: Potentially expensive logging (#1695)
bart-vmware May 13, 2026
7d66e96
Ignore case when comparing Connector configuration keys (#1700)
bart-vmware May 19, 2026
e353005
Update ReSharper to v2026.1.2 (#1702)
bart-vmware May 22, 2026
e2ed3a3
Remove suppression for CA1848: Use the LoggerMessage delegates (#1704)
bart-vmware May 27, 2026
c7c84a4
Fix crash on shutdown: trying to unregister app that never registered…
bart-vmware May 28, 2026
b7ca93c
Fix management port isolation bypass
TimHess May 13, 2026
c34a739
Fix Eureka DataCenterInfo poisoning
TimHess May 13, 2026
e50cd31
Enhance /env sanitizer
TimHess May 18, 2026
b39defa
Require FULL Permissions on /env, /threaddump, /heapdump by default
TimHess May 19, 2026
64ed5ff
Fix Vault token leak on HTTP redirect
TimHess May 19, 2026
8dd97cc
Harden temporary files written by MySQL/PostgreSQL Connectors
bart-vmware May 19, 2026
6cfee5c
Fix unexpected OAEP algorithm downgrade
TimHess May 21, 2026
463dcbc
Placeholder resolution should only be logged at trace-level
TimHess May 21, 2026
04db2ac
Add expiration to JWT/OpenID keys caching
bart-vmware May 26, 2026
43c7829
Update for next Steeltoe release v4.2
bart-vmware May 28, 2026
cef1a9e
Move unshipped APIs to shipped
bart-vmware May 28, 2026
169f220
Fix Sonar GHA workflow to adapt for Config Server docker changes
bart-vmware May 28, 2026
2d4338d
Fix Sonar GHA workflow
bart-vmware May 28, 2026
441733a
Merge branch 'main' into 4.x
bart-vmware May 29, 2026
becaadd
Fix branch ref in status badge
bart-vmware May 29, 2026
f220ff0
Fix additional links to main in status badges
bart-vmware May 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .config/dotnet-tools.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"isRoot": true,
"tools": {
"jetbrains.resharper.globaltools": {
"version": "2025.2.0",
"version": "2026.1.2",
"commands": [
"jb"
],
Expand Down
3 changes: 0 additions & 3 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,3 @@ dotnet_diagnostic.IDE0270.severity = silent

# JSON002: Probable JSON string detected
dotnet_diagnostic.JSON002.severity = silent

# CA1848: Use the LoggerMessage delegates (depends on https://github.com/SteeltoeOSS/Steeltoe/issues/969)
dotnet_diagnostic.CA1848.severity = silent
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/question.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: Question
about: Select if you have a question or feedback - Also check out slack.steeltoe.io for assistance.
about: Select if you have a question or feedback - Also check out https://github.com/SteeltoeOSS/Steeltoe/discussions for assistance.
title: "[QUESTION] "
labels: Type/question
assignees: ''
Expand Down
75 changes: 41 additions & 34 deletions .github/workflows/Steeltoe.All.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,17 +17,18 @@ permissions:
pull-requests: write

env:
STEELTOE_MACOS_DIAGNOSE_HOSTNAME_LOOKUP: true
DOTNET_CLI_TELEMETRY_OPTOUT: 1
DOTNET_NOLOGO: true
SOLUTION_FILE: 'src/Steeltoe.All.sln'
SOLUTION_FILE: 'src/Steeltoe.All.slnx'
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 --collect "XPlat Code Coverage" --logger trx --results-directory ${{ github.workspace }}/TestOutput
--settings coverlet.runsettings --blame-crash --blame-hang-timeout 1m

jobs:
analyze:
build:
name: Build and Test
timeout-minutes: 30
timeout-minutes: 60
strategy:
fail-fast: false
matrix:
Expand All @@ -36,11 +37,10 @@ jobs:
- os: ubuntu-latest
runDockerContainers: true
- os: windows-latest
skipFilter: Category!=Integration
skipIntegrationTests: true
- os: macos-latest
skipFilter: Category!=Integration&Category!=SkipOnMacOS
skipIntegrationTests: true
runs-on: ${{ matrix.os }}
continue-on-error: true

services:
eurekaServer:
Expand All @@ -54,16 +54,24 @@ jobs:
eureka.client.serviceUrl.defaultZone: http://eurekaServer:8761/eureka
eureka.instance.hostname: localhost
eureka.instance.instanceId: localhost:configServer:8888
encrypt.keyStore.location: file:///workspace/server.jks
encrypt.keyStore.password: letmein
encrypt.keyStore.alias: mytestkey
encrypt.rsa.algorithm: OAEP
encrypt.rsa.salt: deadbeef
encrypt.rsa.strong: "false"
options: --name steeltoe-config
ports:
- 8888:8888

steps:
- name: Setup .NET
uses: actions/setup-dotnet@v4
uses: actions/setup-dotnet@v5
with:
dotnet-version: |
8.0.*
9.0.*
10.0.*

- name: Turn off dev certificate (macOS only)
if: ${{ matrix.os == 'macos-latest' }}
Expand All @@ -73,52 +81,51 @@ jobs:
# When that happens, select 'Always Allow' to grant 'dotnet' access to the certificate key in the future.
# and the test run fails, but without indicating which test caused it. By setting this, the causing test fails with the next message:
# Unable to configure HTTPS endpoint. No server certificate was specified, and the default developer certificate could not be found or is out of date.
# To prevent the causing test from failing the test run, disable it on macOS by adding [Trait("Category", "SkipOnMacOS")].
# To prevent the causing test from failing the test run, disable it on macOS using FactSkippedOnPlatform/TheorySkippedOnPlatform.
shell: bash
run: echo "DOTNET_GENERATE_ASPNET_CERTIFICATE=false" >> $GITHUB_ENV

- name: Git checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
persist-credentials: false

- name: Restore packages
run: dotnet restore ${{ env.SOLUTION_FILE }} /p:Configuration=Release --verbosity minimal

- name: Build solution
run: dotnet build ${{ env.SOLUTION_FILE }} --no-restore --configuration Release --verbosity minimal

- name: Set skip filters for tests
- name: Provide jks file for Config Server container
if: ${{ matrix.runDockerContainers }}
# The Config Server container starts before checkout, when server.jks is not yet available.
# Copy it into the container now and restart so Config Server can pick up the keystore.
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
docker cp src/Configuration/test/Encryption.Test/Cryptography/server.jks steeltoe-config:/workspace/server.jks
docker restart steeltoe-config

- name: Test (net8.0)
run: dotnet test ${{ env.SOLUTION_FILE }} --framework net8.0 --filter "${{ env.SKIP_FILTER_NO_MEMORY_DUMPS }}" ${{ env.COMMON_TEST_ARGS }}
- name: Restore packages
run: dotnet restore ${{ env.SOLUTION_FILE }} /p:Configuration=Release /p:NuGetAudit=false --verbosity minimal

- 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 }}
- name: Build solution
run: dotnet build ${{ env.SOLUTION_FILE }} --no-restore --configuration Release --verbosity minimal

- name: Test (net9.0)
run: dotnet test ${{ env.SOLUTION_FILE }} --framework net9.0 --filter "${{ env.SKIP_FILTER_NO_MEMORY_DUMPS }}" ${{ env.COMMON_TEST_ARGS }}
- name: Test
id: test
run: dotnet test ${{ env.SOLUTION_FILE }} --filter "${{ matrix.skipIntegrationTests == true && 'Category!=MemoryDumps&Category!=Integration' || 'Category!=MemoryDumps' }}" ${{ 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 }}
- name: Test (memory dumps)
id: test-memory-dumps
run: dotnet test src/Management/test/Endpoint.Test --filter "Category=MemoryDumps" ${{ env.COMMON_TEST_ARGS }}

- name: Upload crash/hang dumps (on failure)
if: ${{ failure() }}
uses: actions/upload-artifact@v4
if: ${{ !cancelled() && (steps.test.outcome == 'failure' || steps.test-memory-dumps.outcome == 'failure') }}
uses: actions/upload-artifact@v7
with:
name: FailedTestOutput-${{ matrix.os }}
path: |
${{ github.workspace }}/dumps/**/*.dmp
${{ github.workspace }}/dumps/**/Sequence_*.xml
${{ github.workspace }}/TestOutput/**/*.dmp
${{ github.workspace }}/TestOutput/**/Sequence_*.xml
if-no-files-found: ignore

- name: Report test results
if: ${{ !cancelled() }}
uses: dorny/test-reporter@v2
if: ${{ !cancelled() && (steps.test.outcome != 'skipped' || steps.test-memory-dumps.outcome != 'skipped') }}
uses: dorny/test-reporter@v3
with:
name: ${{ matrix.os }} test results
reporter: dotnet-trx
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/component-common.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ on:
- stylecop.json
- '*.props'
- '*.ruleset'
- nuget.config
- .config/dotnet-tools.json
- .github/workflows/component-shared-workflow.yml
- .github/workflows/component-common.yml
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/component-configuration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ on:
- stylecop.json
- '*.props'
- '*.ruleset'
- nuget.config
- .config/dotnet-tools.json
- .github/workflows/component-shared-workflow.yml
- .github/workflows/component-configuration.yml
Expand All @@ -24,4 +25,4 @@ jobs:
with:
component: Configuration
OS: ubuntu
runConfigServer: true
runDockerContainers: true
1 change: 1 addition & 0 deletions .github/workflows/component-connectors.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ on:
- stylecop.json
- '*.props'
- '*.ruleset'
- nuget.config
- .config/dotnet-tools.json
- .github/workflows/component-shared-workflow.yml
- .github/workflows/component-connectors.yml
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/component-discovery.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ on:
- stylecop.json
- '*.props'
- '*.ruleset'
- nuget.config
- .config/dotnet-tools.json
- .github/workflows/component-shared-workflow.yml
- .github/workflows/component-discovery.yml
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/component-logging.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ on:
- stylecop.json
- '*.props'
- '*.ruleset'
- nuget.config
- .config/dotnet-tools.json
- .github/workflows/component-shared-workflow.yml
- .github/workflows/component-logging.yml
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/component-management.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ on:
- stylecop.json
- '*.props'
- '*.ruleset'
- nuget.config
- .config/dotnet-tools.json
- .github/workflows/component-shared-workflow.yml
- .github/workflows/component-management.yml
Expand All @@ -30,7 +31,6 @@ jobs:
with:
component: Management
OS: macos
skipFilter: Category!=SkipOnMacOS

windows:
uses: ./.github/workflows/component-shared-workflow.yml
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/component-security.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ on:
- stylecop.json
- '*.props'
- '*.ruleset'
- nuget.config
- .config/dotnet-tools.json
- .github/workflows/component-shared-workflow.yml
- .github/workflows/component-security.yml
Expand Down
78 changes: 42 additions & 36 deletions .github/workflows/component-shared-workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,7 @@ on:
OS:
required: true
type: string
skipFilter:
required: false
type: string
runConfigServer:
runDockerContainers:
required: false
type: boolean
default: false
Expand All @@ -22,16 +19,13 @@ permissions:
pull-requests: write

env:
STEELTOE_MACOS_DIAGNOSE_HOSTNAME_LOOKUP: true
DOTNET_CLI_TELEMETRY_OPTOUT: 1
DOTNET_NOLOGO: true
SOLUTION_FILE: src/Steeltoe.${{ inputs.component }}.slnf
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
SKIP_FILTER_NO_MEMORY_DUMPS: >-
${{ inputs.skipFilter && format('--filter "{0}&Category!=MemoryDumps"', inputs.skipFilter) || '--filter "Category!=MemoryDumps"' }}
SKIP_FILTER_WITH_MEMORY_DUMPS: >-
${{ inputs.skipFilter && format('--filter "{0}&Category=MemoryDumps"', inputs.skipFilter) || '--filter "Category=MemoryDumps"' }}
--no-build --configuration Release --collect "XPlat Code Coverage" --logger trx --results-directory ${{ github.workspace }}/TestOutput
--settings coverlet.runsettings --blame-crash --blame-hang-timeout 1m

jobs:
build:
Expand All @@ -41,26 +35,34 @@ jobs:

services:
eurekaServer:
image: ${{ inputs.runConfigServer && 'steeltoe.azurecr.io/eureka-server' || null }}
image: ${{ inputs.runDockerContainers && 'steeltoe.azurecr.io/eureka-server' || null }}
ports:
- 8761:8761
configServer:
image: ${{ inputs.runConfigServer && 'steeltoe.azurecr.io/config-server' || null }}
image: ${{ inputs.runDockerContainers && 'steeltoe.azurecr.io/config-server' || null }}
env:
eureka.client.enabled: true
eureka.client.serviceUrl.defaultZone: http://eurekaServer:8761/eureka
eureka.instance.hostname: localhost
eureka.instance.instanceId: localhost:configServer:8888
encrypt.keyStore.location: file:///workspace/server.jks
encrypt.keyStore.password: letmein
encrypt.keyStore.alias: mytestkey
encrypt.rsa.algorithm: OAEP
encrypt.rsa.salt: deadbeef
encrypt.rsa.strong: "false"
options: --name steeltoe-config
ports:
- 8888:8888

steps:
- name: Setup .NET
uses: actions/setup-dotnet@v4
uses: actions/setup-dotnet@v5
with:
dotnet-version: |
8.0.*
9.0.*
10.0.*

- name: Turn off dev certificate (macOS only)
if: ${{ inputs.OS == 'macos' }}
Expand All @@ -70,50 +72,54 @@ jobs:
# When that happens, select 'Always Allow' to grant 'dotnet' access to the certificate key in the future.
# and the test run fails, but without indicating which test caused it. By setting this, the causing test fails with the next message:
# Unable to configure HTTPS endpoint. No server certificate was specified, and the default developer certificate could not be found or is out of date.
# To prevent the causing test from failing the test run, disable it on macOS by adding [Trait("Category", "SkipOnMacOS")].
# To prevent the causing test from failing the test run, disable it on macOS using FactSkippedOnPlatform/TheorySkippedOnPlatform.
shell: bash
run: echo "DOTNET_GENERATE_ASPNET_CERTIFICATE=false" >> $GITHUB_ENV

- name: Git checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
persist-credentials: false

- name: Provide jks file for Config Server container
if: ${{ inputs.runDockerContainers }}
# The Config Server container starts before checkout, when server.jks is not yet available.
# Copy it into the container now and restart so Config Server can pick up the keystore.
shell: bash
run: |
docker cp src/Configuration/test/Encryption.Test/Cryptography/server.jks steeltoe-config:/workspace/server.jks
docker restart steeltoe-config

- name: Restore packages
run: dotnet restore ${{ env.SOLUTION_FILE }} /p:Configuration=Release --verbosity minimal
run: dotnet restore ${{ env.SOLUTION_FILE }} /p:Configuration=Release /p:NuGetAudit=false --verbosity minimal

- name: Build solution
run: dotnet build ${{ env.SOLUTION_FILE }} --no-restore --configuration Release --verbosity minimal

- name: Test (net8.0)
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)
if: ${{ inputs.component == 'Management' }}
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 ${{ env.SKIP_FILTER_NO_MEMORY_DUMPS }} ${{ env.COMMON_TEST_ARGS }}
- name: Test
id: test
run: dotnet test ${{ env.SOLUTION_FILE }} --filter "Category!=MemoryDumps" ${{ env.COMMON_TEST_ARGS }}

- name: Test (net9.0) (memory dumps)
- name: Test (memory dumps)
id: test-memory-dumps
if: ${{ inputs.component == 'Management' }}
run: dotnet test ${{ env.SOLUTION_FILE }} --framework net9.0 ${{ env.SKIP_FILTER_WITH_MEMORY_DUMPS }} ${{ env.COMMON_TEST_ARGS }}
run: dotnet test src/Management/test/Endpoint.Test --filter "Category=MemoryDumps" ${{ env.COMMON_TEST_ARGS }}

- name: Upload crash/hang dumps (on failure)
if: ${{ failure() }}
uses: actions/upload-artifact@v4
if: ${{ !cancelled() && (steps.test.outcome == 'failure' || steps.test-memory-dumps.outcome == 'failure') }}
uses: actions/upload-artifact@v7
with:
name: FailedTestOutput-${{ inputs.OS }}
name: FailedTestOutput-${{ inputs.OS }}-latest
path: |
${{ github.workspace }}/dumps/**/*.dmp
${{ github.workspace }}/dumps/**/Sequence_*.xml
${{ github.workspace }}/TestOutput/**/*.dmp
${{ github.workspace }}/TestOutput/**/Sequence_*.xml
if-no-files-found: ignore

- name: Report test results
if: ${{ !cancelled() }}
uses: dorny/test-reporter@v2
if: ${{ !cancelled() && (steps.test.outcome != 'skipped' || steps.test-memory-dumps.outcome != 'skipped') }}
uses: dorny/test-reporter@v3
with:
name: ${{ inputs.OS }} test results
name: ${{ inputs.OS }}-latest test results
reporter: dotnet-trx
path: '**/*.trx'
fail-on-empty: 'true'
Expand Down
Loading
Loading