Skip to content

Consolidate single-consumer library test legs into build jobs#128095

Open
agocke wants to merge 2 commits into
dotnet:mainfrom
agocke:pipeline/consolidate-single-consumer-legs
Open

Consolidate single-consumer library test legs into build jobs#128095
agocke wants to merge 2 commits into
dotnet:mainfrom
agocke:pipeline/consolidate-single-consumer-legs

Conversation

@agocke
Copy link
Copy Markdown
Member

@agocke agocke commented May 12, 2026

Note

This PR was generated with the assistance of GitHub Copilot.

Summary

Merges 6 split build→upload→download→test leg pairs into self-contained jobs that build and send to Helix directly, eliminating artifact upload/download overhead.

Each of these artifacts was only consumed by a single downstream test leg on the same platform, making them safe consolidation candidates. The change follows the existing self-contained pattern used by NativeAOT_Libraries, Mono_Interpreter, and Mono_MiniJIT legs.

Consolidated legs

Libraries_CheckedCoreCLR → Libraries Test Run

  • linux_musl_x64: build+test merged, removed from separate test run
  • windows_x86: build+test merged, removed from separate test run

CoreCLR_ReleaseLibraries → Libraries Test Run

  • linux_x64: build+test merged, removed separate test run block
  • linux_musl_arm: build+test merged, removed separate test run block
  • linux_musl_arm64: build+test merged, removed separate test run block
  • windows_x64: build+test merged, removed separate test run block

What changed

  • Replaced upload-artifact-step.yml calls with helix.yml in postBuildSteps
  • Added helixQueuesTemplate + helixQueueGroup: libraries to platform-matrix
  • Bumped timeout 120→240 min (build+Helix combined)
  • buildConfig: Release explicitly overridden for CoreCLR_ReleaseLibraries (build uses checked for CLR, but Helix needs Release for libraries config)
  • Removed the entire CoreCLR_ReleaseLibraries test run block (all 4 platforms consolidated)
  • Removed windows_x86 and linux_musl_x64 from Libraries_CheckedCoreCLR test run block (kept linux_arm64 which is multi-consumer)

Not changed (multi-consumer, left for future work)

  • CoreCLR_Libraries for linux_x64, windows_x64, osx_arm64, windows_x86 (consumed by both Installer and Libraries Test Run)
  • Libraries_CheckedCoreCLR for linux_arm64, osx_arm64 (consumed by both Runtime Tests Run and Libraries Test Run)

Net result

  • -62 lines of pipeline YAML
  • 6 fewer pipeline jobs
  • 6 fewer artifact upload+download round-trips

Merge 6 split build+test leg pairs into self-contained jobs that build
and send to Helix directly, eliminating artifact upload/download overhead.

Consolidated legs (Libraries_CheckedCoreCLR):
- linux_musl_x64: build+test merged, removed from separate test run
- windows_x86: build+test merged, removed from separate test run

Consolidated legs (CoreCLR_ReleaseLibraries):
- linux_x64: build+test merged, removed separate test run block
- linux_musl_arm: build+test merged, removed separate test run block
- linux_musl_arm64: build+test merged, removed separate test run block
- windows_x64: build+test merged, removed separate test run block

Each of these artifacts was only consumed by a single downstream test
leg on the same platform. The consolidation follows the existing
self-contained pattern used by NativeAOT_Libraries, Mono_Interpreter,
and Mono_MiniJIT legs.

Net result: -62 lines of pipeline YAML, 6 fewer pipeline jobs,
6 fewer artifact upload+download round-trips.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings May 12, 2026 19:54
@dotnet-policy-service
Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @dotnet/area-infrastructure-libraries
See info in area-owners.md if you want to be subscribed.

Copy link
Copy Markdown
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

Note

Copilot was unable to run its full agentic suite in this review.

Consolidates several single-consumer library build→artifact→test legs into self-contained build jobs that submit to Helix directly, reducing pipeline job count and artifact transfer overhead.

Changes:

  • Replaced artifact upload steps with direct Helix submission in consolidated build jobs.
  • Added helixQueuesTemplate / helixQueueGroup: libraries to the affected platform matrices.
  • Increased job timeouts to account for combined build + Helix submission time and removed now-redundant downstream test-run blocks/platforms.

Comment thread eng/pipelines/runtime.yml
archiveExtension: $(archiveExtension)
tarCompression: $(tarCompression)
artifactName: Libraries_CheckedCoreCLR_TestArtifacts_$(osGroup)$(osSubgroup)_$(archType)_$(_BuildConfig)
creator: dotnet-bot
Comment thread eng/pipelines/runtime.yml
artifactName: CoreCLR_ReleaseLibraries_TestArtifacts_$(osGroup)$(osSubgroup)_$(archType)_$(_BuildConfig)
creator: dotnet-bot
buildConfig: Release
testRunNamePrefixSuffix: coreclr_Checked
Comment thread eng/pipelines/runtime.yml
archiveExtension: $(archiveExtension)
tarCompression: $(tarCompression)
artifactName: Libraries_CheckedCoreCLR_TestArtifacts_$(osGroup)$(osSubgroup)_$(archType)_$(_BuildConfig)
creator: dotnet-bot
Comment thread eng/pipelines/runtime.yml
archiveExtension: $(archiveExtension)
tarCompression: $(tarCompression)
artifactName: CoreCLR_ReleaseLibraries_TestArtifacts_$(osGroup)$(osSubgroup)_$(archType)_$(_BuildConfig)
creator: dotnet-bot
The global-build-job.yml template forwards buildConfig to postBuildStep
templates automatically (line 253). Passing buildConfig again in the
helix.yml parameters block caused a duplicate key error.

Fix: set buildConfig to Release at the platform-matrix level (matching
the libraries configuration) and hardcode -rc Checked in buildArgs
for the CLR runtime configuration.

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

Status: No status

Development

Successfully merging this pull request may close these issues.

2 participants