Skip to content

Expose BuildQuality parameter on the Build Promotion pipeline#17168

Draft
dsplaisted wants to merge 1 commit into
mainfrom
buildquality-on-promote-build
Draft

Expose BuildQuality parameter on the Build Promotion pipeline#17168
dsplaisted wants to merge 1 commit into
mainfrom
buildquality-on-promote-build

Conversation

@dsplaisted

Copy link
Copy Markdown
Member

The Build Promotion pipeline (eng/promote-build.yml) always published assets with the default 'daily' build quality because it never forwarded a quality to eng/publishing/v3/publish.yml. That meant a build could only ever be promoted to the 'daily' aka.ms link quality (aka.ms/dotnet//daily/...); there was no supported way to promote an already-built build to the 'preview' (or other) quality without re-running the release/staging process.

Add a BuildQuality parameter (default 'daily') and forward it to publish.yml so an operator can promote a build to a non-daily aka.ms link quality. publish.yml already accepts buildQuality, so this only threads the existing knob through.

Backward compatible: the default is 'daily', and darc add-build-to-channel does not pass this parameter, so existing promotions are unchanged. BuildQuality is parsed with a case-insensitive Enum.TryParse in PublishArtifactsInManifest, so an unexpected value safely falls back to Daily.

Motivating scenario: dotnetup ships from dotnet/sdk via aka.ms/dotnet/dotnetup//... and needs a 'preview' quality selector (with rollback by re-promoting an older build) without a rebuild.

The Build Promotion pipeline (eng/promote-build.yml) always published assets
with the default 'daily' build quality because it never forwarded a quality to
eng/publishing/v3/publish.yml. That meant a build could only ever be promoted
to the 'daily' aka.ms link quality (aka.ms/dotnet/<channel>/daily/...); there
was no supported way to promote an already-built build to the 'preview' (or
other) quality without re-running the release/staging process.

Add a BuildQuality parameter (default 'daily') and forward it to publish.yml so
an operator can promote a build to a non-daily aka.ms link quality. publish.yml
already accepts buildQuality, so this only threads the existing knob through.

Backward compatible: the default is 'daily', and darc add-build-to-channel does
not pass this parameter, so existing promotions are unchanged. BuildQuality is
parsed with a case-insensitive Enum.TryParse in PublishArtifactsInManifest, so
an unexpected value safely falls back to Daily.

Motivating scenario: dotnetup ships from dotnet/sdk via
aka.ms/dotnet/dotnetup/<quality>/... and needs a 'preview' quality selector
(with rollback by re-promoting an older build) without a rebuild.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: f118977e-1e71-40b0-8045-10f5ab006715
Copilot AI review requested due to automatic review settings July 22, 2026 21:11

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.

Pull request overview

This PR updates the Build Promotion pipeline to allow operators to choose a non-default build quality (e.g., preview) when publishing assets and creating aka.ms links, by threading an existing buildQuality parameter through to the shared publishing template.

Changes:

  • Add a BuildQuality parameter (default daily) to eng/promote-build.yml.
  • Forward the selected BuildQuality to eng/publishing/v3/publish.yml as buildQuality.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread eng/promote-build.yml
default: ' '

- name: BuildQuality
displayName: "Build quality used when creating aka.ms links (aka.ms/dotnet/<channel>/<quality>/...):"
Comment thread eng/promote-build.yml
BARBuildId: ${{ parameters.BARBuildId }}
symbolPublishingAdditionalParameters: ${{ parameters.SymbolPublishingAdditionalParameters }}
artifactsPublishingAdditionalParameters: ${{ parameters.ArtifactsPublishingAdditionalParameters }} No newline at end of file
artifactsPublishingAdditionalParameters: ${{ parameters.ArtifactsPublishingAdditionalParameters }}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This shuold alrewady be available via artifactsPublishingAdditionalParameters

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants