Skip to content

Consolidate runtime-diagnostics pipeline into the runtime pipeline#124593

Draft
steveisok wants to merge 4 commits intodotnet:mainfrom
steveisok:consolidate-diag-pipeline
Draft

Consolidate runtime-diagnostics pipeline into the runtime pipeline#124593
steveisok wants to merge 4 commits intodotnet:mainfrom
steveisok:consolidate-diag-pipeline

Conversation

@steveisok
Copy link
Member

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

  • eng/pipelines/runtime.yml: Add dotnet/diagnostics repository resource (with configurable branch parameter), a shared framework upload step (DiagnosticsRuntime_*) to the existing CoreCLR_Libraries post-build, and two new diagnostic test jobs (cDAC and DAC) that depend on the existing CoreCLR_Libraries
    windows_x64 build.
  • docs/infra/diagnostics-pipeline-consolidation.md: Design doc covering motivation, alternatives evaluated, and the chosen approach.
  • docs/infra/runtime-pipeline-architecture.md: Comprehensive reference for the runtime.yml pipeline (template chain, platform matrix, variables, artifact flow, job catalog).

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

  • Both diagnostic jobs use the same EvaluatePaths conditions as their CoreCLR_Libraries dependency.
  • The runtime-diagnostics.yml pipeline can be retired once this is validated.

steveisok and others added 3 commits February 19, 2026 08:11
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>
@dotnet-policy-service
Copy link
Contributor

Tagging subscribers to this area: @steveisok, @tommcdon, @dotnet/dotnet-diag
See info in area-owners.md if you want to be subscribed.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

Comments