Skip to content

[perf][wasm] Stage Crossgen2 pack for CoreCLR R2R benchmarks - #133040

Draft
lewing wants to merge 3 commits into
mainfrom
lewing-wasm-r2r-perf-artifact
Draft

[perf][wasm] Stage Crossgen2 pack for CoreCLR R2R benchmarks#133040
lewing wants to merge 3 commits into
mainfrom
lewing-wasm-r2r-perf-artifact

Conversation

@lewing

@lewing lewing commented Sep 1, 2026

Copy link
Copy Markdown
Member

Summary

Stage the matching locally built, non-symbol Microsoft.NETCore.App.Crossgen2 package in the BrowserWasmCoreCLR performance artifact under staging/built-nugets.

This enables isolated Helix machines to resolve the same-build Crossgen2 pack when per-application browser-WASM benchmarks publish with PublishReadyToRun=true. The CoreCLR performance build enables BuildHostTools, and the pack subset permits browser builds with that explicit opt-in to run Microsoft.NETCore.App.Crossgen2.Host.sfxproj. The package selection excludes *.symbols.nupkg and fails if no matching non-symbol package is available. These changes apply only to BrowserWasmCoreCLR; Mono artifact behavior is unchanged.

End-to-end runtime-wasm-perf validation depends on the companion dotnet/performance change currently at commit 17449e9826d0ecc224e92a3ad854796b0be41219.

Validation

  • Parsed the changed XML and YAML build configuration.
  • Ran git diff --check and commit checks.
  • Simulated staging with matching non-symbol, symbols, and unrelated nupkgs; only the non-symbol Crossgen2 package was copied.
  • Evaluated the MSBuild project graph and confirmed:
    • browser CoreCLR with BuildHostTools=true includes Microsoft.NETCore.App.Crossgen2.Host.sfxproj;
    • browser CoreCLR without the opt-in excludes it;
    • Android remains excluded even with BuildHostTools=true.

Note

This pull request was generated with the assistance of GitHub Copilot.

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

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 6 pipeline(s).
10 pipeline(s) were filtered out due to trigger conditions.
There may be pipelines that require an authorized user to comment /azp run to run.

@lewing
lewing requested a review from kotlarmilos September 1, 2026 19:53
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: c4188acf-cdd7-467f-818f-5a43eaaf9e3e
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: c4188acf-cdd7-467f-818f-5a43eaaf9e3e

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.

🟢 Approval recommended

The changes are narrowly scoped to the CoreCLR browser-wasm perf pipeline and the updated conditions/staging logic are consistent with existing TargetsMobile semantics for TargetOS=browser.

Pull request overview

This PR updates the WASM performance build to produce and stage the host Crossgen2 pack alongside the CoreCLR browser-wasm performance artifact, enabling downstream R2R publishing on isolated machines using same-build assets.

Changes:

  • Allow building the Crossgen2 host pack when TargetOS=browser and BuildHostTools=true (even though browser sets TargetsMobile=true).
  • Add an optional pipeline step to copy the non-symbol Microsoft.NETCore.App.Crossgen2.*.nupkg into the staged built-nugets feed and fail if none is present.
  • Enable BuildHostTools=true for the CoreCLR browser-wasm perf build job and turn on Crossgen2 pack staging for its artifact.
File summaries
File Description
eng/Subsets.props Adjusts pack-building conditions so browser-wasm CoreCLR builds can produce the host Crossgen2 pack when opted in.
eng/pipelines/performance/templates/perf-wasm-prepare-artifacts-steps.yml Adds an opt-in step to stage only non-symbol Crossgen2 nupkgs into the perf artifact’s local feed.
eng/pipelines/performance/templates/perf-wasm-build-jobs.yml Opts the CoreCLR browser-wasm perf job into BuildHostTools and Crossgen2 pack staging.
Review details
  • Files reviewed: 3/3 changed files
  • Comments generated: 0
  • Review effort level: Lite

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.

2 participants