Revert "[release/9.0] Fix intermediate artifact upload collisions for NativeAOT and Mono"#125829
Conversation
… NativeA…" This reverts commit 57a3b46.
There was a problem hiding this comment.
Pull request overview
Reverts the prior change that made NativeAOT/Mono intermediate artifact upload paths job-specific, returning to a single shared intermediate-artifacts subdirectory for those builds in runtime-official.yml.
Changes:
- Revert NativeAOT intermediate artifact subdirectory name back to
NativeAOTRuntimePacks(non-matrix-qualified). - Revert Mono intermediate artifact subdirectory name back to
MonoRuntimePacksfor multiple Mono matrix jobs/variants. - Update workload package download patterns to target
IntermediateArtifacts/MonoRuntimePacks/...(no wildcard), with one duplicated pattern entry introduced.
| postBuildSteps: | ||
| - template: /eng/pipelines/common/upload-intermediate-artifacts-step.yml | ||
| parameters: | ||
| name: NativeAOTRuntimePacks_$(osGroup)$(osSubgroup)_$(archType) | ||
| name: NativeAOTRuntimePacks |
There was a problem hiding this comment.
upload-intermediate-artifacts-step.yml publishes everything under $(Build.StagingDirectory)/IntermediateArtifacts/${{ parameters.name }} into the shared IntermediateArtifacts pipeline artifact. In this platform-matrix (many platforms/jobs), using a constant name: NativeAOTRuntimePacks means multiple jobs will publish into the same artifact subdirectory, which can overwrite/lose files (and was previously avoided by including $(osGroup)$(osSubgroup)_$(archType)). Consider restoring a job-unique suffix (e.g., include $(osGroup)$(osSubgroup)_$(archType) and/or the matrix variant) so each job publishes to its own subfolder.
| postBuildSteps: | ||
| - template: /eng/pipelines/common/upload-intermediate-artifacts-step.yml | ||
| parameters: | ||
| name: MonoRuntimePacks_$(osGroup)$(osSubgroup)_$(archType) | ||
| name: MonoRuntimePacks |
There was a problem hiding this comment.
Multiple Mono platform-matrix jobs (regular, wasm/wasi, multithread, crossaot, llvmaot) all call upload-intermediate-artifacts-step.yml. With name: MonoRuntimePacks shared across these jobs, they will publish into the same IntermediateArtifacts/MonoRuntimePacks subdirectory, making artifact contents dependent on upload order and risking overwrites. Reintroduce a unique name per job (e.g., MonoRuntimePacks_$(osGroup)$(osSubgroup)_$(archType) and/or include $(runtimeVariant) / $(nameSuffix)) to keep outputs isolated.
| IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.ios-*.nupkg | ||
| IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.iossimulator-*.nupkg | ||
| IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.maccatalyst-*.nupkg | ||
| IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.multithread.browser-wasm*.nupkg |
There was a problem hiding this comment.
The DownloadPipelineArtifact patterns list includes Microsoft.NETCore.App.Runtime.Mono.multithread.browser-wasm*.nupkg twice (lines 631 and 635). This is redundant and can lead to duplicate copies/overwrites during the subsequent flatten step; remove the duplicate entry.
| IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.multithread.browser-wasm*.nupkg |
|
Tagging subscribers to this area: @akoeplinger, @matouskozak, @simonrozsival |
Reverts #125564