make sure we get all the dgml files#54875
Open
baronfel wants to merge 2 commits into
Open
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Updates the SDK build pipeline to publish the complete set of NativeAOT size-analysis artifacts by copying additional DGML graph outputs into the _AotSizeAnalysis pipeline artifact.
Changes:
- Extend NativeAOT size-analysis artifact collection to include
dotnet-aot.codegen.dgml.xmlanddotnet-aot.scan.dgml.xml. - Adjust the copy glob patterns for the NativeAOT size-analysis outputs under
artifacts/obj/dotnet-aot.
nagilson
approved these changes
Jun 18, 2026
Member
Author
|
It would be good to also figure out how to only collect these assets on the AOT legs? We seem to be trying to collect on TestBuild legs too, and I'm not sure everything needed is in place. |
Only the AoT legs publish the dotnet-aot NativeAOT library, so gate the Copy/Publish NativeAOT Size Analysis steps behind runAoTTests so they no longer run (and upload empty artifacts) on non-AoT legs. Also switch the test step to Arcade's --binaryLogName instead of a raw /bl:. The raw /bl: left Arcade's default Build.binlog logger active too, so the test run overwrote the build step's Build.binlog -- the one that captures the redist GenerateSdkLayout / dotnet-aot NativeAOT publish. Naming the test binlog explicitly preserves the build binlog so the dotnet-aot publish is actually captured for diagnosis. 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.
NativeAOT size-analysis pipeline fixes
This PR fixes how the NativeAOT size-analysis files (
dotnet-aot.mstat,dotnet-aot.codegen.dgml.xml,dotnet-aot.scan.dgml.xml) are collected and uploaded from the SDK build legs.Changes
Correct file globs/names. ILC emits two DGML files (
*.codegen.dgml.xmland*.scan.dgml.xml, not*.scan.dgml) plus the*.mstat, all under<config>/<tfm>/<rid>/native/. The copy step now matches all three with a precise<config>/*/*/native/glob. Verified on the Windows AoT leg, where the copy now finds 3 files.Only collect on AoT legs. The
Copy/Publish NativeAOT Size Analysissteps were unconditional, so non-AoT legs (TestBuild,FullFramework) were running them and uploading_AotSizeAnalysisartifacts too. They're now gated behindrunAoTTests.Preserve the build binlog. The
Copy Logsstep uploadsBuild.binlog, but on every leg it was byte-identical to…Tests.binlogand contained only test projects — neverredist/dotnet-aot. Root cause:-cimakes Arcade emit a defaultBuild.binlog, and the test step (also-ci) appended a raw/bl:, so it wrote both files and clobbered the build step's realBuild.binlog. The test step now uses Arcade's--binaryLogName, so the build binlog (which captures the redistGenerateSdkLayout→dotnet-aotNativeAOT publish) survives for diagnosis.Still open: macOS (and Linux) don't publish
dotnet-aotInvestigation of build
1471340shows only the Windows legs produced_AotSizeAnalysisartifacts. On macOS the build console only shows the manageddotnet-aot.dllbuild (no…/publish/native step), and the copy step loggedfound 0 files.PublishDotnetAotis gated by'$(TargetRid)' == '$(HostRid)'(redist.csproj,GenerateLayout.targets); the non-Windows legs pass a portableTargetRid(osx-arm64/linux-x64) whileHostRidresolves to a different value (on Linux, the non-portable distro RID), so the gate fails and the NativeAOT publish never runs.Next step: with the build binlog now preserved, confirm the exact
HostRid/TargetRidvalues on the macOS leg before deciding how to fix the publish gate (that condition controls whetherdotnet-aotships in the macOS/Linux SDK layout at all, so it needs care).