[release/13.2] Add WinGet publishing pipeline for Aspire CLI#14502
Draft
radical wants to merge 2 commits intodotnet:release/13.2from
Draft
[release/13.2] Add WinGet publishing pipeline for Aspire CLI#14502radical wants to merge 2 commits intodotnet:release/13.2from
radical wants to merge 2 commits intodotnet:release/13.2from
Conversation
Add WinGet manifest generation, validation, and publishing to the internal pipeline. Includes install/uninstall testing with proper cleanup on failure, and fixes _IsPublishBranch string comparison for template expression evaluation. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…Get param Add publishReleaseToWinGet pipeline parameter (default: false) so that release branch builds only publish to WinGet when explicitly opted in. Main branch non-PR builds continue to publish automatically. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
|
🚀 Dogfood this PR with:
curl -fsSL https://raw.githubusercontent.com/dotnet/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 14502Or
iex "& { $(irm https://raw.githubusercontent.com/dotnet/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 14502" |
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.
Add WinGet publishing pipeline for Aspire CLI
Summary
Adds automated WinGet manifest generation, validation, and publishing to the internal Azure DevOps pipeline so that the Aspire CLI (
aspire) can be installed viawinget install Microsoft.Aspire(release) orwinget install Microsoft.Aspire.Prerelease(preview).Motivation
Today users install the Aspire CLI through acquisition scripts (
aspire.dev/get-aspire-cli.sh/aspire.dev/get-aspire-cli.ps1). Adding WinGet support gives Windows developers a familiar, first-class installation channel (winget install/winget upgrade) with automatic PATH management and upgrade semantics.What's included
Pipeline changes (
eng/pipelines/)publish_wingetstage inazure-pipelines.yml– runs after thebuildstage on non-PR builds frommain,release/*, andinternal/release/*branches.publishReleaseToWinGetparameter (defaultfalse) – gates WinGet publishing on release branches so it only happens when explicitly opted in. Main branch builds publish automatically.Microsoft.Aspire; all other branches useMicrosoft.Aspire.Prerelease.eng/pipelines/templates/winget.ymlthat:wingetcreateand thewingetCLI on the build agent.winget validate.microsoft/winget-pkgsviawingetcreate update --submit(gated behindpublishToWinGet).Manifest generation (
eng/winget/)generate-manifests.ps1– PowerShell script that:win-x64,win-arm64by default).ci.dot.netpublishing pattern.-ValidateUrls).Two sets of YAML templates:
eng/winget/microsoft.aspire/Microsoft.Aspirerelease/*)eng/winget/microsoft.aspire.prerelease/Microsoft.Aspire.Prereleasemain)Each set contains:
Aspire.yaml.template– version manifestAspire.locale.en-US.yaml.template– locale/metadata manifest (description, tags, license, etc.)Aspire.installer.yaml.template– installer manifest (zip → portable withaspire.exe)Testing
winget validate --manifeston every qualifying build.publishToWinGetis false).