Register dotnetup Daily channel for publishing#16813
Merged
Merged
Conversation
Routes the new dotnetup Daily channel (created by https://dev.azure.com/dnceng/internal/_git/maestro-configuration/pullrequest/61048) through DotNetToolsFeeds so: - Standalone executables and .sha512 checksums land at ci.dot.net/public/dotnetup/<SemVer>/<file> - NuGet packages (when added) flow to the dotnet-tools feed (defense in depth: an MSRC kill switch lives in the channel config rather than a per-pipeline publishing step) Adds DotnetupAkaMSCreateLinkPatterns because the Linux/macOS dotnetup binaries have no file extension and don't match DefaultAkaMSCreateLinkPatterns. Stable aka.ms links land at aka.ms/dotnet/dotnetup/daily/<filename>. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
mmitche
approved these changes
May 14, 2026
dsplaisted
added a commit
to dotnet/sdk
that referenced
this pull request
May 22, 2026
…lse) The dotnetup CI pipeline was inheriting isAssetlessBuild: true from the main dotnet/sdk pipeline pattern. That setting is correct for dotnet/sdk itself, whose assets are published downstream by the dotnet/dotnet VMR. dotnetup has no equivalent downstream flow; this repo's official build is the source of truth for the dotnetup-* binaries on the 'dotnetup Daily' channel. With isAssetlessBuild: true, `darc add-build-to-channel` is invoked with --skip-assets-publishing, which assigns the build to the channel but bypasses the Maestro Build Promotion pipeline (def 750). No promotion run means no upload to ci.dot.net/public/dotnetup/<SemVer>/ and no aka.ms/dotnet/dotnetup/daily/* shortlinks. Flip to isAssetlessBuild: false so the publish job downloads our AssetManifests + BlobArtifacts and queues the promotion pipeline, which then runs PublishArtifactsInManifestV3 against the channel's TargetChannelConfig (registered in dotnet/arcade#16813) to upload the binaries and create the aka.ms links. 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.
Register
dotnetup Dailychannel for publishingWires up the new
dotnetup Dailychannel (id10506, created by maestro-configuration#61048) to publish via Arcade'sPublishArtifactsInManifestflow.Background
dotnetupis a new NativeAOT installer tool built out ofdotnet/sdk(see dotnet/sdk#54254). Until now its standalone executables were copied to a private Azure blob viaaz login-gated scripts, which prevents anonymous installation and is operationally awkward. We're switching to BAR/channel-based publishing so:https://ci.dot.net/public/dotnetup/<SemVer>/<file>.aka.ms/dotnet/dotnetup/daily/<file>links always point at the latest build.Microsoft.Dotnet.InstallationNuGet package eventually flows through the same channel (replacing a direct1ES.PublishNuget@1step in the dotnetup pipeline) — defense in depth for MSRC scenarios.End-to-end mechanics were validated by promoting BAR build 314208 to General Testing (promotion build 2974290) — blobs landed correctly at
ci.dot.net/dev/dotnetup/0.1.3-preview.4.26263.3/...with HTTP 200 anonymous access on all 16 binary/checksum assets.Configuration choices
id10506isInternalfalsepublishingInfraVersionLatestakaMSChannelNames["dotnetup/daily"]aka.ms/dotnet/dotnetup/daily/<file>.akaMSCreateLinkPatternsDotnetupAkaMSCreateLinkPatterns(new)Default*is extension-based and skips our extensionless Linux/macOS binaries.targetFeedsDotNetToolsFeedsdotnet-toolsfeed (defense in depth — channel-based MSRC kill switch); installers →ci.dot.net/public.flattentrue)dotnetup/<SemVer>/prefix from the blob Id when constructing the aka.ms URL.symbolTargetTypePublic.NET 6 Engetc. (no symbols today, but consistent posture).New regex pattern
DefaultAkaMSCreateLinkPatternsmatches files by extension (.exe,.zip,.gz,.rpm, …). The Windows binaries (dotnetup-win-x64.exe) match\.exe$and get aka.ms links. The Linux/macOS binaries are extensionless (dotnetup-linux-x64,dotnetup-osx-arm64, …) and silently fall through.DotnetupAkaMSCreateLinkPatternsadds:Modeled on
AspireAkaMSCreateLinkPatterns, which solves the same problem for the extensionlessget-aspire-cli.{ps1,sh}scripts.Rollout sequencing
This PR is one of three coordinated changes:
dotnetup Dailychannel.PublishArtifactsInManifest.dotnet/sdk@release/dnup → dotnetup Dailyso every dotnetup CI build auto-promotes.Plus the corresponding pipeline changes in
dotnet/sdk(still on thedotnetup-bar-experimentbranch; will be merged after this PR lands).Validation plan
After this PR merges:
release/dnup).dotnetup Daily(darc add-build-to-channel --id <BARId> --channel "dotnetup Daily").ci.dot.net/public/dotnetup/<SemVer>/dotnetup-*returns HTTP 200 for all 8 RID binaries and their.sha512.aka.ms/dotnet/dotnetup/daily/dotnetup-win-x64.exeetc. resolve to the latest build.Microsoft.Dotnet.Installation.nupkg(when added to the manifest) is restorable from thedotnet-toolsfeed.