Consolidate runtime-diagnostics pipeline into the runtime pipeline#124593
Draft
steveisok wants to merge 4 commits intodotnet:mainfrom
Draft
Consolidate runtime-diagnostics pipeline into the runtime pipeline#124593steveisok wants to merge 4 commits intodotnet:mainfrom
steveisok wants to merge 4 commits intodotnet:mainfrom
Conversation
Move the cDAC and DAC SOS test jobs from the standalone runtime-diagnostics pipeline into runtime.yml. This eliminates the redundant CoreCLR rebuild that runtime-diagnostics performed. The diagnostics jobs now depend on the existing CoreCLR_Libraries windows_x64 build and download just the shared framework artifact (DiagnosticsRuntime_*) that a new upload step produces. Changes: - Add dotnet/diagnostics repository resource with configurable branch - Add shared framework upload step to CoreCLR_Libraries postBuildSteps - Add cDAC and DAC test jobs at the end of the Build stage - Both diagnostic jobs use the same path-based conditions as their dependency (CoreCLR_Libraries) The runtime-diagnostics.yml pipeline can be retired once this is validated. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Documents the motivation, alternatives evaluated, and design for moving SOS/DAC diagnostic tests from the standalone runtime-diagnostics pipeline into runtime.yml. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Comprehensive reference for the runtime.yml pipeline covering: - Template chain (4 layers from runtime.yml to 1ES/public) - Platform matrix system and xplat-setup variables - EvaluatePaths stage and PR path filtering - Job templates (global-build-job, runtime-diag-job, etc.) - Key variables (debugOnPrReleaseOnRolling, isRollingBuild, etc.) - Artifact flow (upload, download, cross-platform considerations) - Helix test infrastructure - Job categories catalog (~55 platform-matrix invocations) - How-to guide for adding new jobs - File reference table Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
|
Tagging subscribers to this area: @steveisok, @tommcdon, @dotnet/dotnet-diag |
Contributor
There was a problem hiding this comment.
Pull request overview
This PR consolidates the runtime-diagnostics pipeline into the main runtime.yml pipeline to eliminate redundant CoreCLR builds and improve CI efficiency. The diagnostics test jobs now reuse artifacts from the existing CoreCLR_Libraries build rather than rebuilding CoreCLR independently, saving approximately 30 minutes of build time per run.
Changes:
- Adds diagnostics repository resource and parameter to runtime.yml for flexible branch targeting
- Adds shared framework artifact upload (DiagnosticsRuntime_*) to CoreCLR_Libraries jobs
- Adds two non-blocking diagnostic test jobs (cDAC and DAC) that depend on CoreCLR_Libraries windows_x64
- Adds comprehensive documentation explaining the pipeline architecture and consolidation rationale
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| eng/pipelines/runtime.yml | Adds diagnostics repo resource, DiagnosticsRuntime artifact upload to CoreCLR_Libraries, and two diagnostic test jobs (cDAC and DAC) that reuse those artifacts |
| docs/infra/runtime-pipeline-architecture.md | New comprehensive reference documenting runtime.yml structure, template chain, platform matrix system, job templates, variables, artifact flow, and job categories |
| docs/infra/diagnostics-pipeline-consolidation.md | Design document explaining the motivation for consolidation, alternatives evaluated, chosen approach, and implementation details |
Move shouldContinueOnError from inside jobParameters to the platform-matrix.yml parameters level. xplat-setup.yml already passes shouldContinueOnError separately, so having it inside jobParameters caused a duplicate definition error at template expansion time, which cascaded into an invalid StageList error. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Move the cDAC and DAC/SOS diagnostic test jobs from the standalone runtime-diagnostics pipeline into runtime.yml, eliminating the redundant CoreCLR rebuild that runtime-diagnostics performed.
Changes
windows_x64 build.
Motivation
The standalone runtime-diagnostics pipeline rebuilt CoreCLR from scratch just to produce shared framework artifacts for SOS tests. By reusing the artifacts already built by CoreCLR_Libraries in runtime.yml, we save ~30 minutes of redundant build time per run and keep diagnostic test results visible
alongside the main build.
Notes