Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Publish dotnet/runtime using standard Arcade Publish tooling #111934

Merged
merged 84 commits into from
Mar 7, 2025

Conversation

jkoritzinsky
Copy link
Member

@jkoritzinsky jkoritzinsky commented Jan 28, 2025

Publish the assets from dotnet/runtime using the standard Arcade publish tooling. This tooling doesn't allow any duplicate packages, so change our publishing logic to the following:

  • In a given build, publish all packages that were produced in the current build that contain that job's target RID.
  • For some target RIDs, also publish an additional subset of packages (specified in Publishing.props).
  • For some jobs (specified in runtime-official), publish all packages produced.
  • In the VMR, mark all "packages not to be published" as "Vertical" visibility so they're still available upstack.
  • Outside the VMR, skip publishing all "packages not to be published" packages.

Blocked on MicroBuild fixes for Linux and Mac: dotnet/source-build#4793 As per #111934 (comment), we are no longer blocked on this.

Verified in https://dev.azure.com/dnceng/internal/_build/results?buildId=2629649&view=results that all of the same assets that we expect to produce in a runtime official build are produced on this branch.

Fixes #102672
Fixes #1719

…n. Don't copy workloads packages as they're already in the right format now.
…es. Use that when possible for unique names and produce our own names when necessary.
@jkoritzinsky
Copy link
Member Author

I've updated this PR to provide a mechanism for us to merge it today and get rid of the long-running patch.

Here's my basic approach:

  • Instead of publishing to AzDO, each runtime vertical will instead publish to disk with a layout like the artifacts directory.
  • Runtime verticals won't sign in the runtime official build
  • We bring back the final join job. This job downloads all of the artifacts from each runtime vertical into its artifacts directory and then does a standard arcade sign/publish with the same signing rules as exist in main.
  • We still get rid of IntermediateArtifacts and instead use separate pipeline artifacts for each vertical.

I have a passing official build from this PR here: https://dev.azure.com/dnceng/internal/_build/results?buildId=2657037&view=results

@jkoritzinsky jkoritzinsky removed the blocked Issue/PR is blocked on something - see comments label Mar 6, 2025
@jkoritzinsky
Copy link
Member Author

Comment on lines +45 to +52
<PropertyGroup Condition="'$(EnableDefaultRidSpecificArtifacts)' == ''">
<!-- Source-build always needs all artifacts to be published. -->
<EnableDefaultRidSpecificArtifacts Condition="'$(DotNetBuildSourceOnly)' != ''">false</EnableDefaultRidSpecificArtifacts>
<!-- Short-stack builds should always only publish RID-specific artifacts. -->
<EnableDefaultRidSpecificArtifacts Condition="'$(ShortStack)' == 'true'">true</EnableDefaultRidSpecificArtifacts>
<!-- If no override is specified, don't use RID-specific publishing. Instead, publish everything. -->
<EnableDefaultRidSpecificArtifacts Condition="'$(EnableDefaultRidSpecificArtifacts)' == ''">false</EnableDefaultRidSpecificArtifacts>
</PropertyGroup>
Copy link
Member

Choose a reason for hiding this comment

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

These settings make sense to me but wouldn't they better fit into the VMR orchestrator as they aren't specific to runtime?

Copy link
Member Author

Choose a reason for hiding this comment

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

Yes, they do fit better in the VMR. However, we need to put them here first so they don't break the VMR until I change the VMR to pass these options down (also in PR)

Copy link
Member Author

Choose a reason for hiding this comment

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

Once the VMR controls are in, I'll come back and remove these.

Copy link
Member

Choose a reason for hiding this comment

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

Consider filing a tracking issue and linking to it. Also, so that others can follow along and understand the potential for improvement in these code paths.

Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>
@jkoritzinsky
Copy link
Member Author

/ba-g timeouts unrelated

@jkoritzinsky jkoritzinsky merged commit 891ff91 into dotnet:main Mar 7, 2025
138 of 148 checks passed
@jkoritzinsky jkoritzinsky deleted the standard-arcade-publish branch March 7, 2025 22:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
3 participants