Skip to content

Shard SOS Helix tests by runtime - #6029

Merged
max-charlamb merged 3 commits into
dotnet:mainfrom
max-charlamb:sos-helix-runtime-sharding
Sep 15, 2026
Merged

max-charlamb merged 3 commits into
dotnet:mainfrom
max-charlamb:sos-helix-runtime-sharding

Conversation

@max-charlamb

@max-charlamb max-charlamb commented Sep 14, 2026 •

Copy link
Copy Markdown
Member

This also expands non-PR public (rolling) SOS coverage from Release-only to both Debug and Release. Pull request validation remains Debug-only.

Summary

  • submit one SOS Helix work item per configured .NET runtime
  • run desktop Framework coverage in a separate Windows work item
  • run both Debug and Release SOS Helix jobs in non-PR public builds while keeping PR validation Debug-only

Validation

  • built SOS.Tests successfully
  • verified generated Windows and Linux work-item lists
  • verified runtime and Framework shard test discovery are mutually exclusive
  • exercised Windows runtime and Framework shard parsing through the staged launcher
  • parsed the updated pipeline YAML and ran git diff --check

CI timing

We will compare this PR's SOS Helix duration with the successful pre-sharding build 1595840.

Run each configured runtime in a separate Helix work item and keep desktop Framework coverage in its own Windows work item. Add Debug SOS coverage alongside Release for non-PR public builds.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 90d32376-768b-4f8c-a982-54247c372cf3
Copilot AI lite review requested due to automatic review settings September 14, 2026 18:24
@max-charlamb
max-charlamb requested a review from a team as a code owner September 14, 2026 18:24

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Critical Windows and internal-release compatibility issues remain, along with an inconsistent macOS Debug/Release job configuration.

Get a fresh assessment by requesting another Copilot review.

Pull request overview

Shards SOS Helix tests by .NET runtime, separates Windows Framework coverage, and adds public non-PR Debug/Release scheduling.

Changes:

  • Generates runtime-specific and Framework-specific Helix work items.
  • Applies shard filters in Unix and Windows launchers.
  • Adds public non-PR Debug SOS jobs and artifacts.
File summaries
File Description
src/tests/SOS.Tests/README.md Documents Helix sharding.
src/tests/SOS.Tests/HelixPayload.targets Generates and dispatches shard work items.
src/tests/SOS.Tests/Helix/run-sos-tests.sh Applies Unix shard filters.
src/tests/SOS.Tests/Helix/run-sos-tests.cmd Applies Windows shard filters.
eng/helix/SendToHelix.proj Dispatches multiple Helix work items.
diagnostics.yml Adds public non-PR Debug SOS jobs and artifacts.
Review details

Suppressed comments (1)

diagnostics.yml:505

  • The new non-PR build publishes MacOS_x64_Debug, but this is the only SOS_Helix_MacOS_x64 entry and it is configured as Release in the following lines. Consequently public non-PR builds spend time producing an unused Debug artifact and never run the promised x64 macOS Debug SOS coverage. Add a matching MacOS_x64_Debug SOS job (while retaining Release if both are required), or remove the unused Debug build configuration.
            - template: /eng/pipelines/sos-helix.yml
              parameters:
                jobTemplate: ${{ variables.jobTemplate }}
                name: SOS_Helix_MacOS_x64_Debug
                osGroup: MacOS
  • Files reviewed: 6/6 changed files
  • Comments generated: 2
  • Review effort level: Lite

💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.

Comment thread src/tests/SOS.Tests/Helix/run-sos-tests.cmd Outdated
Comment thread src/tests/SOS.Tests/HelixPayload.targets
Max Charlamb added 2 commits September 14, 2026 14:49
Enable delayed expansion and materialize the hyphen-delimited work-item tokens before selecting the runtime or Framework shard.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 90d32376-768b-4f8c-a982-54247c372cf3
Materialize the runtime shard item list into a scalar property before passing it to the nested MSBuild invocation.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 90d32376-768b-4f8c-a982-54247c372cf3
@max-charlamb
max-charlamb merged commit baa50e2 into dotnet:main Sep 15, 2026
23 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants