Publish native Aspire CLI tool packages#16570
Conversation
|
🚀 Dogfood this PR with:
curl -fsSL https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 16570Or
iex "& { $(irm https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 16570" |
|
Re-running the failed jobs in the CI workflow for this pull request because 2 jobs were identified as retry-safe transient failures in the CI run attempt.
Matched test failure patterns (50 tests)
|
1138718 to
144e05b
Compare
Download RID-specific Aspire.Cli tool packages from native build artifacts and stage them in the shipping packages directory so publishing can include them. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Compare discovered CLI archives and RID-specific tool packages against the expected clipack RIDs, require exactly one pointer package, and summarize publish output without listing every NuGet package. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
08345bb to
cc05691
Compare
There was a problem hiding this comment.
Pull request overview
This PR updates Aspire’s internal publishing pipeline to ensure the NativeAOT Aspire CLI dotnet tool NuGet packages (Aspire.Cli*.nupkg) produced by the native build jobs are staged and published, addressing missing Aspire.Cli packages in the feed.
Changes:
- Download
Aspire.Cli*.nupkgartifacts from native build outputs and stage a single package per filename intoartifacts/packages/$(_BuildConfig)/Shipping. - Add validation in
eng/Publishing.propsto ensure RID-specificAspire.Cli.<rid>packages exist for every expected CLI RID (using the same RID source as native archives). - Include staged
Aspire.Cli*.nupkgpackages in publishing inputs (ItemsToPushToBlobFeed) and add logging to summarize publish items.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| eng/Publishing.props | Validates expected CLI RIDs across both native archives and RID-specific tool packages; adds CLI tool nupkgs to publishing items and logs publish inputs. |
| eng/pipelines/azure-pipelines.yml | Downloads native Aspire.Cli*.nupkg artifacts and stages deduped copies into the Shipping packages folder for publish. |
| eng/pipelines/azure-pipelines-unofficial.yml | Mirrors the official pipeline changes to stage native CLI tool nupkgs for unofficial runs. |
|
/backport to release/13.3 |
|
Started backporting to |
| throw "No native CLI tool packages were downloaded to $downloadRoot." | ||
| } | ||
|
|
||
| foreach ($packageGroup in $packages | Group-Object Name) { |
There was a problem hiding this comment.
How is this possible? They were all downloaded to the same folder - how could they have the same name?
There was a problem hiding this comment.
It creates the relative paths from the archive. I'll make this whole thing more robust.
| Write-Host "Using $($package.FullName) for duplicate package name $($packageGroup.Name)." | ||
| } | ||
|
|
||
| Copy-Item -LiteralPath $package.FullName -Destination (Join-Path $shippingDir $package.Name) -Force |
There was a problem hiding this comment.
Why not just download them directly to this folder in the first place?
|
|
||
| </Target> | ||
|
|
||
| <Target Name="_LogPublishItemsToPush" AfterTargets="_PublishBlobItems"> |
There was a problem hiding this comment.
Do we need this? Why doesn't the publish have this log?
There was a problem hiding this comment.
It's there but you have kinda go and parse it from messy output. This gives a quick overview.
|
@eerhardt I'll tighten up the script in a follow up. |
Description
Publishes the NativeAOT Aspire CLI dotnet tool packages produced by the native build jobs.
Fixes #16563
Changes:
Aspire.Cli*.nupkgartifacts in the internal Azure Pipelines build and stage one package per filename intoartifacts/packages/$(_BuildConfig)/Shipping.Aspire.Cli.<rid>packages ineng/Publishing.propsusing the same_ExpectedCliRidssource already used for nativeaspire-cli-*archives.Aspire.Cli*.nupkgpackages toItemsToPushToBlobFeedas shipping package-feed items.Validation:
xmllint --noout eng/Publishing.propseng/pipelines/azure-pipelines.ymlandeng/pipelines/azure-pipelines-unofficial.ymlgit diff --check./build.sh --build /p:SkipNativeBuild=trueChecklist
<remarks />and<code />elements on your triple slash comments?aspire.devissue: