From 4a32ded1ca92547e7c024bc8ba67781b0e883435 Mon Sep 17 00:00:00 2001 From: Ankit Jain Date: Wed, 29 Apr 2026 20:44:52 -0400 Subject: [PATCH 1/2] fix(publishing): stage native CLI tool packages 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> --- eng/Publishing.props | 6 ++++ eng/pipelines/azure-pipelines-unofficial.yml | 30 ++++++++++++++++++++ eng/pipelines/azure-pipelines.yml | 30 ++++++++++++++++++++ 3 files changed, 66 insertions(+) diff --git a/eng/Publishing.props b/eng/Publishing.props index a5b86c8b8da..7efedee5b89 100644 --- a/eng/Publishing.props +++ b/eng/Publishing.props @@ -43,6 +43,8 @@ <_ExtensionFilesToPublish Include="$(ArtifactsPackagesDir)**\aspire-vscode-*.vsix" /> <_ExtensionManifestFiles Include="$(ArtifactsPackagesDir)**\aspire-vscode-*.manifest" /> <_ExtensionSignatureFiles Include="$(ArtifactsPackagesDir)**\aspire-vscode-*.signature.p7s" /> + <_CliToolPackagesToPublish Include="$(ArtifactsShippingPackagesDir)**\Aspire.Cli*.nupkg" + Exclude="$(ArtifactsShippingPackagesDir)**\*.symbols.nupkg" /> - <_ArchiveFiles Include="$(ArtifactsPackagesDir)\**\aspire-cli-*.zip" /> - <_ArchiveFiles Include="$(ArtifactsPackagesDir)\**\aspire-cli-*.tar.gz" /> - - <_ArchiveFiles Include="$(_SignedArchivesDir)\**\aspire-cli-*.zip" /> - <_ArchiveFiles Include="$(_SignedArchivesDir)\**\aspire-cli-*.tar.gz" /> <_ExtensionFilesToPublish Include="$(ArtifactsPackagesDir)**\aspire-vscode-*.vsix" /> <_ExtensionManifestFiles Include="$(ArtifactsPackagesDir)**\aspire-vscode-*.manifest" /> @@ -54,22 +49,49 @@ - + + + <_CliPackProjects Include="$(RepoRoot)eng\clipack\Aspire.Cli.*.csproj" /> + <_ExpectedCliRids Include="@(_CliPackProjects->'%(Filename)'->Replace('Aspire.Cli.', ''))" /> + + + + <_ArchiveFiles Include="$(ArtifactsPackagesDir)\**\aspire-cli-*.zip" /> + <_ArchiveFiles Include="$(ArtifactsPackagesDir)\**\aspire-cli-*.tar.gz" /> + + <_ArchiveFiles Include="$(_SignedArchivesDir)\**\aspire-cli-*.zip" /> + <_ArchiveFiles Include="$(_SignedArchivesDir)\**\aspire-cli-*.tar.gz" /> + <_ArchiveFilesWithRid Include="@(_ArchiveFiles)"> $([System.Text.RegularExpressions.Regex]::Match(%(_ArchiveFiles.FileName), 'aspire-cli-(.*)-\d+.*').Groups[1].Value) - <_CliPackProjects Include="$(RepoRoot)eng\clipack\Aspire.Cli.*.csproj" /> - <_ExpectedRids Include="@(_CliPackProjects->'%(Filename)'->Replace('Aspire.Cli.', ''))" /> + <_MissingArchiveRids Include="@(_ExpectedCliRids)" Exclude="@(_ArchiveFilesWithRid -> '%(ExtractedRid)')" /> + <_UnexpectedArchiveRids Include="@(_ArchiveFilesWithRid -> '%(ExtractedRid)')" Exclude="@(_ExpectedCliRids)" /> + - <_MissingRids Include="@(_ExpectedRids)" Exclude="@(_ArchiveFilesWithRid -> '%(ExtractedRid)')" /> - <_UnexpectedRids Include="@(_ArchiveFilesWithRid -> '%(ExtractedRid)')" Exclude="@(_ExpectedRids)" /> + + <_CliRidSpecificToolPackageFiles Include="@(_CliToolPackagesToPublish)" + Condition="!$([System.Text.RegularExpressions.Regex]::IsMatch('%(_CliToolPackagesToPublish.FileName)', '^Aspire\.Cli\.\d'))" /> + + + <_CliRidSpecificToolPackageFilesWithRid Include="@(_CliRidSpecificToolPackageFiles)"> + + $([System.Text.RegularExpressions.Regex]::Match('%(_CliRidSpecificToolPackageFiles.FileName)', '^Aspire\.Cli\.(.*?)\.\d+.*').Groups[1].Value) + + + <_MissingCliPackageRids Include="@(_ExpectedCliRids)" Exclude="@(_CliRidSpecificToolPackageFilesWithRid -> '%(ExtractedRid)')" /> + <_UnexpectedCliPackageRids Include="@(_CliRidSpecificToolPackageFilesWithRid -> '%(ExtractedRid)')" Exclude="@(_ExpectedCliRids)" /> + <_CliPointerToolPackages Include="@(_CliToolPackagesToPublish)" Exclude="@(_CliRidSpecificToolPackageFilesWithRid)" /> - - + + + + + @@ -110,7 +132,7 @@ - + <_ExtensionFilesToPublish Remove="@(_ExtensionFilesToPublish)" /> @@ -174,5 +196,23 @@ $(_UploadPathRoot)/$(_PackageVersion)/%(Filename)%(Extension) + + + + + + <_PackageItemsToPush Include="@(ItemsToPushToBlobFeed)" Condition="'%(ItemsToPushToBlobFeed.Kind)' == 'Package'" /> + <_ShippingPackageItemsToPush Include="@(_PackageItemsToPush)" Condition="'%(_PackageItemsToPush.IsShipping)' == 'true'" /> + <_FlatBlobItemsToPush Include="@(ItemsToPushToBlobFeed)" Condition="'%(ItemsToPushToBlobFeed.Kind)' != 'Package' And '%(ItemsToPushToBlobFeed.PublishFlatContainer)' == 'true'" /> + <_ShippingFlatBlobItemsToPush Include="@(_FlatBlobItemsToPush)" Condition="'%(_FlatBlobItemsToPush.IsShipping)' == 'true'" /> + <_NonShippingFlatBlobItemsToPush Include="@(_FlatBlobItemsToPush)" Condition="'%(_FlatBlobItemsToPush.IsShipping)' != 'true'" /> + + + + + + +