Enable publishing in VMR (#18917)

Co-authored-by: Přemek Vysoký <premek.vysoky@microsoft.com>
Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>
This commit is contained in:
Nikola Milosavljevic 2024-03-15 07:48:15 -07:00 committed by GitHub
parent 3ee5304e71
commit 3384a8d60f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
19 changed files with 2130 additions and 11 deletions

View file

@ -135,7 +135,12 @@
<IsStableBuild Condition="'$(DotNetFinalVersionKind)' == 'release'">true</IsStableBuild>
</PropertyGroup>
<!--
Delete PushToAzureDevOpsArtifacts task and remove condition from PushToBuildStorage task
after this repo picks up arcade with the following change: https://github.com/dotnet/arcade/pull/14559
-->
<PushToAzureDevOpsArtifacts
Condition="'$(DotNetBuildOrchestrator)' != 'true'"
AzureDevOpsCollectionUri="$(SYSTEM_TEAMFOUNDATIONCOLLECTIONURI)"
AzureDevOpsProject="$(SYSTEM_TEAMPROJECT)"
AzureDevOpsBuildId="$(BUILD_BUILDID)"
@ -154,5 +159,31 @@
PublishFlatContainer="true"
IsStableBuild="$(IsStableBuild)"
PublishingVersion="3" />
<PushToBuildStorage
Condition="'$(DotNetBuildOrchestrator)' == 'true'"
AzureDevOpsCollectionUri="$(SYSTEM_TEAMFOUNDATIONCOLLECTIONURI)"
AzureDevOpsProject="$(SYSTEM_TEAMPROJECT)"
AzureDevOpsBuildId="$(BUILD_BUILDID)"
ItemsToPush="@(SdkAssetsToPushToBlobFeed);@(ChecksumsToPushToBlobFeed)"
ItemsToSign="@(ItemsToSignPostBuild)"
CertificatesSignInfo="@(CertificatesSignInfo)"
StrongNameSignInfo="@(StrongNameSignInfo)"
FileSignInfo="@(FileSignInfo)"
FileExtensionSignInfo="@(FileExtensionSignInfo)"
ManifestBuildData="@(ManifestBuildData)"
ManifestRepoName="$(BUILD_REPOSITORY_NAME)"
ManifestBranch="$(BUILD_SOURCEBRANCH)"
ManifestBuildId="$(BUILD_BUILDNUMBER)"
ManifestCommit="$(BUILD_SOURCEVERSION)"
AssetManifestPath="$(InstallersAssetManifestFilePath)"
PublishFlatContainer="true"
IsStableBuild="$(IsStableBuild)"
PublishingVersion="3"
PushToLocalStorage="$(PushToLocalStorage)"
AssetsLocalStorageDir="$(SourceBuiltAssetsDir)"
ShippingPackagesLocalStorageDir="$(SourceBuiltShippingPackagesDir)"
NonShippingPackagesLocalStorageDir="$(SourceBuiltNonShippingPackagesDir)"
AssetManifestsLocalStorageDir="$(SourceBuiltAssetManifestsDir)" />
</Target>
</Project>

View file

@ -173,7 +173,9 @@
<VSMSBuildSdkResolversDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'toolset', 'VSSdkResolvers'))</VSMSBuildSdkResolversDir>
<IntermediateSymbolsRootDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsObjDir)', 'Symbols'))</IntermediateSymbolsRootDir>
<AssetManifestsIntermediateDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsObjDir)', 'AssetManifests'))</AssetManifestsIntermediateDir>
<ArtifactsAssetsDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'assets', '$(Configuration)'))</ArtifactsAssetsDir>
<ArtifactsAssetsSymbolsDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsAssetsDir)', 'Symbols'))</ArtifactsAssetsSymbolsDir>
<PrebuiltPackagesPath>$([MSBuild]::NormalizeDirectory('$(PrereqsPackagesDir)', 'prebuilt'))</PrebuiltPackagesPath>
<PreviouslyRestoredPackagesPath>$([MSBuild]::NormalizeDirectory('$(PrereqsPackagesDir)', 'previouslyRestored'))</PreviouslyRestoredPackagesPath>

View file

@ -7,7 +7,7 @@
<SdkFilenamePrefix>dotnet-sdk-</SdkFilenamePrefix>
</PropertyGroup>
<ItemGroup>
<SdkTarballItem Include="$(ArtifactsAssetsDir)$(SdkFilenamePrefix)*$(ArchiveExtension)" />
<SdkTarballItem Include="$(ArtifactsAssetsDir)Sdk/**/$(SdkFilenamePrefix)*$(ArchiveExtension)" />
</ItemGroup>
<!--

View file

@ -38,12 +38,14 @@
<!-- Update nuget.config property to point to modified file that will be created/updated during build. -->
<NuGetConfigFile Condition="'$(OriginalNuGetConfigFile)' != ''">$(BaseIntermediateOutputPath)$([System.IO.Path]::GetFileName('$(OriginalNuGetConfigFile)'))</NuGetConfigFile>
<RepoAssetManifestsDir>$([MSBuild]::NormalizeDirectory('$(AssetManifestsIntermediateDir)', '$(RepositoryName)'))</RepoAssetManifestsDir>
<SourceBuiltSdksDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'source-built-sdks'))</SourceBuiltSdksDir>
<RepoArtifactsShippingPackagesDir Condition="'$(RepositoryName)' != 'source-build-reference-packages'">$([MSBuild]::NormalizeDirectory('$(ArtifactsShippingPackagesDir)', '$(RepositoryName)'))</RepoArtifactsShippingPackagesDir>
<RepoArtifactsShippingPackagesDir Condition="'$(RepositoryName)' == 'source-build-reference-packages'">$(ReferencePackagesDir)</RepoArtifactsShippingPackagesDir>
<RepoArtifactsNonShippingPackagesDir Condition="'$(RepositoryName)' != 'source-build-reference-packages'">$([MSBuild]::NormalizeDirectory('$(ArtifactsNonShippingPackagesDir)', '$(RepositoryName)'))</RepoArtifactsNonShippingPackagesDir>
<RepoArtifactsNonShippingPackagesDir Condition="'$(RepositoryName)' == 'source-build-reference-packages'">$(ReferencePackagesDir)</RepoArtifactsNonShippingPackagesDir>
<!-- Set the bootstrap version to the VMR's version if empty. (no bootstrap set). -->
<ArcadeBootstrapVersion>$([MSBuild]::ValueOrDefault('$(ARCADE_BOOTSTRAP_VERSION)', '$(ArcadeSdkVersion)'))</ArcadeBootstrapVersion>
@ -86,6 +88,11 @@
<BuildArgs Condition="'$(NuGetConfigFile)' != ''">$(BuildArgs) /p:RestoreConfigFile=$(NuGetConfigFile)</BuildArgs>
<!-- TODO rename this property https://github.com/dotnet/source-build/issues/4165 -->
<BuildArgs Condition="'$(SourceBuildUseMonoRuntime)' == 'true'">$(BuildArgs) /p:SourceBuildUseMonoRuntime=$(SourceBuildUseMonoRuntime)</BuildArgs>
<!-- Pass locations for assets and packages -->
<BuildArgs>$(BuildArgs) /p:SourceBuiltAssetsDir=$(ArtifactsAssetsDir)</BuildArgs>
<BuildArgs>$(BuildArgs) /p:SourceBuiltShippingPackagesDir=$(RepoArtifactsShippingPackagesDir)</BuildArgs>
<BuildArgs>$(BuildArgs) /p:SourceBuiltNonShippingPackagesDir=$(RepoArtifactsNonShippingPackagesDir)</BuildArgs>
<BuildArgs>$(BuildArgs) /p:SourceBuiltAssetManifestsDir=$(RepoAssetManifestsDir)</BuildArgs>
</PropertyGroup>
<PropertyGroup Condition="'$(DotNetBuildSourceOnly)' == 'true'">

View file

@ -24,6 +24,7 @@
<ProjectAssetsJsonArchiveFile>$(PackageReportDir)all-project-assets-json-files.zip</ProjectAssetsJsonArchiveFile>
<ProdConManifestFile>$(PackageReportDir)prodcon-build.xml</ProdConManifestFile>
<RepoManifestFile>$([MSBuild]::NormalizePath('$(ProjectDirectory)', 'artifacts', 'RepoManifest.xml'))</RepoManifestFile>
<RepoAssetsSymbolsArchive>$(ArtifactsAssetsSymbolsDir)Symbols.$(RepositoryName)$(ArchiveExtension)</RepoAssetsSymbolsArchive>
<IntermediateSymbolsRepoDir>$(IntermediateSymbolsRootDir)$(RepositoryName)</IntermediateSymbolsRepoDir>
</PropertyGroup>
@ -408,9 +409,13 @@
<Message Importance="High" Text="See '$(RepoConsoleLogFile)' for more information." Condition="Exists('$(RepoConsoleLogFile)') and '$(MinimalConsoleLogOutput)' == 'true'" />
</Target>
<!--
Remove this target after arcade changes for publishing have flown to installer repo.
https://github.com/dotnet/source-build/issues/4207
-->
<Target Name="CopyRepoArtifacts"
DependsOnTargets="RepoBuild"
Condition="'$(IsUtilityProject)' != 'true'"
Condition="'$(IsUtilityProject)' != 'true' and Exists('$(RepoManifestFile)')"
Inputs="$(RepoManifestFile)"
Outputs="$(BaseIntermediateOutputPath)CopyRepoArtifacts.complete">
<Error Text="Repo manifest file doesn't exist." Condition="!Exists('$(RepoManifestFile)')" />
@ -601,8 +606,18 @@
</Touch>
</Target>
<Target Name="DiscoverSymbolsArchiveFile"
Condition="'$(DotNetBuildSourceOnly)' == 'true' and
'$(IsUtilityProject)' != 'true' and
Exists('$(RepoAssetsSymbolsArchive)')">
<ItemGroup>
<RepoSymbolsArchive Include="$(RepoAssetsSymbolsArchive)" />
</ItemGroup>
</Target>
<Target Name="ExtractSymbolsArchiveFile"
DependsOnTargets="CopyRepoArtifacts"
DependsOnTargets="CopyRepoArtifacts;DiscoverSymbolsArchiveFile"
Condition="'$(DotNetBuildSourceOnly)' == 'true' and
'$(IsUtilityProject)' != 'true' and
'@(RepoSymbolsArchive)' != ''"
@ -624,6 +639,7 @@
CopyRepoArtifacts;
CopyInnerBuildRestoredPackages;
ExtractToolPackage;
DiscoverSymbolsArchiveFile;
ExtractSymbolsArchiveFile;
CleanupRepo" />

View file

@ -4,8 +4,6 @@
<!-- AspNetCore doesn't have a root build script but one under the eng folder. -->
<BuildScript>$(ProjectDirectory)eng\build$(ShellExtension)</BuildScript>
<!-- BuildActions includes -publish which is not supported by the aspnetcore build script. -->
<BuildActions>$(FlagParameterPrefix)restore $(FlagParameterPrefix)build $(FlagParameterPrefix)pack</BuildActions>
<!-- On Windows, build all for the VB PoC -->
<BuildActions Condition="'$(DotNetBuildSourceOnly)' != 'true' and '$(BuildOS)' == 'windows'">$(FlagParameterPrefix)restore $(FlagParameterPrefix)all $(FlagParameterPrefix)pack</BuildActions>

View file

@ -137,4 +137,15 @@
<Message Importance="High" Text="Packaged source-built artifacts to $(SourceBuiltTarballName)" />
</Target>
<!-- Copy SDK archive to assets root. -->
<Target Name="CopySdkArchive"
AfterTargets="Build"
DependsOnTargets="DetermineSourceBuiltSdkVersion">
<Copy SourceFiles="@(SdkTarballItem)"
DestinationFolder="$(ArtifactsAssetsDir)"
SkipUnchangedFiles="true"
UseHardlinksIfPossible="true" />
</Target>
</Project>

View file

@ -31,7 +31,14 @@
SourcePath="$(LocalNuGetPackageCacheDirectory)" />
</Target>
<!--
Remove this target after VMR picks up new arcade publishing changes: https://github.com/dotnet/arcade/pull/14559
Tracking issue: https://github.com/dotnet/source-build/issues/4210
We only run this target if we're publishing using repo manifest.
-->
<Target Name="ClearPreviousSBRP"
Condition="Exists('$(RepoManifestFile)')"
BeforeTargets="CopyRepoArtifacts"
DependsOnTargets="RepoBuild">
<!-- Building SBRP: At this point the References directory contains the previously-source-built SBRPs,

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,87 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Nikola Milosavljevic <nikolam@microsoft.com>
Date: Thu, 7 Mar 2024 21:11:28 +0000
Subject: [PATCH] Enable publishing in VMR
Backport: https://github.com/dotnet/aspnetcore/pull/54422
---
eng/Publishing.props | 10 +++++++++-
eng/build.sh | 9 +++++++++
2 files changed, 18 insertions(+), 1 deletion(-)
diff --git a/eng/Publishing.props b/eng/Publishing.props
index 7edbb21d21..d00d8d91d2 100644
--- a/eng/Publishing.props
+++ b/eng/Publishing.props
@@ -38,6 +38,8 @@
<!-- Remove wixpacks if not doing post-build signing, since they are not needed -->
<_InstallersToPublish Remove="@(WixPacksToPublish)" Condition="'$(PostBuildSign)' != 'true'" />
<_ChecksumsToPublish Include="$(ArtifactsDir)installers\**\*.sha512" />
+ <!-- Version file, for VMR build -->
+ <_VersionFileToPublish Include="$(ArtifactsDir)installers\**\aspnetcore_base_runtime.version" UploadPathSegment="Runtime" Condition="'$(DotNetBuildRepo)' == 'true'" />
</ItemGroup>
<Target
@@ -64,7 +66,7 @@
the nupkgs pushed. Do not do this if building from source, since we want the source build intermediate package
to be published. Use ArcadeBuildFromSource as DotNetBuildFromSource is only set in the internal source build,
and Build.proj is invoked from the wrapper build. -->
- <ItemsToPushToBlobFeed Remove="@(ItemsToPushToBlobFeed)" Condition="'$(OS)' != 'Windows_NT' and '$(PostBuildSign)' != 'true' and '$(ArcadeBuildFromSource)' != 'true'" />
+ <ItemsToPushToBlobFeed Remove="@(ItemsToPushToBlobFeed)" Condition="'$(OS)' != 'Windows_NT' and '$(PostBuildSign)' != 'true' and '$(DotNetBuildRepo)' != 'true'" />
<ItemsToPushToBlobFeed Include="@(_ChecksumsToPublish)">
<ManifestArtifactData>NonShipping=true</ManifestArtifactData>
@@ -72,6 +74,12 @@
<RelativeBlobPath>$(_UploadPathRoot)/Runtime/$(_PackageVersion)/%(Filename)%(Extension)</RelativeBlobPath>
</ItemsToPushToBlobFeed>
+ <ItemsToPushToBlobFeed Include="@(_VersionFileToPublish)">
+ <ManifestArtifactData>NonShipping=true</ManifestArtifactData>
+ <PublishFlatContainer>true</PublishFlatContainer>
+ <RelativeBlobPath>$(_UploadPathRoot)/Runtime/$(_PackageVersion)/%(Filename)%(Extension)</RelativeBlobPath>
+ </ItemsToPushToBlobFeed>
+
<ItemsToPushToBlobFeed Include="@(_InstallersToPublish)" Condition="! $([System.String]::Copy('%(Filename)').ToLower().Contains('internal'))">
<ManifestArtifactData>NonShipping=false</ManifestArtifactData>
<PublishFlatContainer>true</PublishFlatContainer>
diff --git a/eng/build.sh b/eng/build.sh
index 51a2cd6ecd..cfc42f1ceb 100755
--- a/eng/build.sh
+++ b/eng/build.sh
@@ -18,6 +18,7 @@ verbosity='minimal'
run_restore=''
run_build=true
run_pack=false
+run_publish=false
run_tests=false
build_all=false
build_deps=true
@@ -62,6 +63,7 @@ Options:
--[no-]build Compile projects. (Implies --no-restore)
--[no-]pack Produce packages.
--[no-]test Run tests.
+ --[no-]publish Run publish.
--projects A list of projects to build. (Must be an absolute path.)
Globbing patterns are supported, such as \"$(pwd)/**/*.csproj\".
@@ -152,6 +154,12 @@ while [[ $# -gt 0 ]]; do
-no-pack|-nopack)
run_pack=false
;;
+ -publish)
+ run_publish=true
+ ;;
+ -no-publish|-nopublish)
+ run_publish=false
+ ;;
-test|-t)
run_tests=true
;;
@@ -286,6 +294,7 @@ if [ "$run_build" = false ]; then
msbuild_args[${#msbuild_args[*]}]="-p:NoBuild=true"
fi
msbuild_args[${#msbuild_args[*]}]="-p:Pack=$run_pack"
+msbuild_args[${#msbuild_args[*]}]="-p:Publish=$run_publish"
msbuild_args[${#msbuild_args[*]}]="-p:Test=$run_tests"
msbuild_args[${#msbuild_args[*]}]="-p:TargetArchitecture=$target_arch"

View file

@ -0,0 +1,42 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Nikola Milosavljevic <nikolam@microsoft.com>
Date: Thu, 7 Mar 2024 21:41:56 +0000
Subject: [PATCH] Enable publishing in VMR
Backport: https://github.com/dotnet/fsharp/pull/16838
---
eng/Publishing.props | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/eng/Publishing.props b/eng/Publishing.props
index 18483e92a..90a2b9cbf 100644
--- a/eng/Publishing.props
+++ b/eng/Publishing.props
@@ -1,5 +1,27 @@
<Project>
<PropertyGroup>
<PublishingVersion>3</PublishingVersion>
+ <PublishDependsOnTargets>$(PublishDependsOnTargets);_PublishPackages</PublishDependsOnTargets>
</PropertyGroup>
+
+ <ItemGroup>
+ <_PackagesToPublish Remove="@(_PackagesToPublish)" />
+ <_PackagesToPublish Include="$(ArtifactsPackagesDir)**\*.nupkg" UploadPathSegment="Runtime" Condition="'$(DotNetBuildRepo)' == 'true'" />
+ </ItemGroup>
+
+ <Target Name="_PublishPackages">
+ <ItemGroup>
+ <!-- Do not push .nupkg files from Linux and macOS builds. They'll be packed up separately and signed on Windows.
+ Do not remove if post build sign is true, as we avoid the xplat codesign jobs, and need to have
+ the nupkgs pushed. Do not do this if building from source, since we want the source build intermediate package
+ to be published. Use DotNetBuildRepo as DotNetBuildFromSource is only set in the internal source build,
+ and Build.proj is invoked from the wrapper build. -->
+ <ItemsToPushToBlobFeed Remove="@(ItemsToPushToBlobFeed)" Condition="'$(OS)' != 'Windows_NT' and '$(PostBuildSign)' != 'true' and '$(DotNetBuildRepo)' != 'true'" />
+
+ <ItemsToPushToBlobFeed Include="@(_PackagesToPublish)">
+ <IsShipping>true</IsShipping>
+ </ItemsToPushToBlobFeed>
+ </ItemGroup>
+ </Target>
+
</Project>

View file

@ -0,0 +1,109 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Nikola Milosavljevic <nikolam@microsoft.com>
Date: Thu, 7 Mar 2024 21:20:16 +0000
Subject: [PATCH] Enable publishing in VMR
Backport: https://github.com/NuGet/NuGet.Client/pull/5673
---
Directory.Packages.props | 1 +
eng/Publishing.props | 31 ++++++++++++++++++++++++++
eng/source-build/source-build.proj | 35 ++++++++++++++++++++++++++++++
3 files changed, 67 insertions(+)
create mode 100644 eng/Publishing.props
diff --git a/Directory.Packages.props b/Directory.Packages.props
index 5de784200..789f9493f 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -179,6 +179,7 @@
<_allowBuildFromSourcePackage Include="Microsoft.Build.Utilities.Core" />
<_allowBuildFromSourcePackage Include="Microsoft.Build" />
<_allowBuildFromSourcePackage Include="Microsoft.CSharp" />
+ <_allowBuildFromSourcePackage Include="Microsoft.DotNet.Build.Tasks.Feed" />
<_allowBuildFromSourcePackage Include="Microsoft.Extensions.CommandLineUtils.Sources" />
<_allowBuildFromSourcePackage Include="Microsoft.Extensions.FileProviders.Abstractions" />
<_allowBuildFromSourcePackage Include="Microsoft.Extensions.FileSystemGlobbing" />
diff --git a/eng/Publishing.props b/eng/Publishing.props
new file mode 100644
index 000000000..81f0204a7
--- /dev/null
+++ b/eng/Publishing.props
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project>
+ <PropertyGroup>
+ <PublishingVersion>3</PublishingVersion>
+ <ProducesDotNetReleaseShippingAssets>true</ProducesDotNetReleaseShippingAssets>
+ <PublishDependsOnTargets>$(PublishDependsOnTargets);_PublishPackages</PublishDependsOnTargets>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <_PackagesToPublish Remove="@(_PackagesToPublish)" />
+ <_PackagesToPublish Include="$(ArtifactsDir)nupkgs/*.nupkg" UploadPathSegment="nuget-client" Condition="'$(DotNetBuildFromSource)' == 'true'" />
+ <_SymbolsPackages Include="$(ArtifactsDir)nupkgs/*.symbols.nupkg" />
+ <_PackagesToPublish Remove="@(_SymbolsPackages)" Condition="'$(DotNetBuildSourceOnly)' == 'true'" />
+ </ItemGroup>
+
+ <Target Name="_PublishPackages">
+ <ItemGroup>
+ <!-- Do not push .nupkg files from Linux and macOS builds. They'll be packed up separately and signed on Windows.
+ Do not remove if post build sign is true, as we avoid the xplat codesign jobs, and need to have
+ the nupkgs pushed. Do not do this if building from source, since we want the source build intermediate package
+ to be published. Use DotNetBuildRepo as DotNetBuildFromSource is only set in the internal source build,
+ and Build.proj is invoked from the wrapper build. -->
+ <ItemsToPushToBlobFeed Remove="@(ItemsToPushToBlobFeed)" Condition="'$(OS)' != 'Windows_NT' and '$(PostBuildSign)' != 'true' and '$(DotNetBuildRepo)' != 'true'" />
+
+ <ItemsToPushToBlobFeed Include="@(_PackagesToPublish)">
+ <IsShipping>true</IsShipping>
+ </ItemsToPushToBlobFeed>
+ </ItemGroup>
+ </Target>
+
+</Project>
\ No newline at end of file
diff --git a/eng/source-build/source-build.proj b/eng/source-build/source-build.proj
index 612811d81..3485a4212 100644
--- a/eng/source-build/source-build.proj
+++ b/eng/source-build/source-build.proj
@@ -62,6 +62,41 @@
Properties="Configuration=$(BuildConfiguration);DotNetBuildFromSource=true"
Targets="PackXPlat" />
+ <ItemGroup>
+ <_AfterSourceBuildProperties Include="_NETCORE_ENGINEERING_TELEMETRY=AfterSourceBuild" />
+ <_AfterSourceBuildProperties Include="ArcadeBuildFromSource=true"/>
+ <_AfterSourceBuildProperties Include="ArcadeInnerBuildFromSource=true"/>
+ </ItemGroup>
+
+ <MSbuild Projects="$(ArcadeDir)/SourceBuild/AfterSourceBuild.proj"
+ Properties="@(_AfterSourceBuildProperties)"
+ />
+
+ <ItemGroup>
+ <_PublishProperties Include="_NETCORE_ENGINEERING_TELEMETRY=Publish" />
+ <_PublishProperties Include="Configuration=$(Configuration)" />
+ <_PublishProperties Include="ArcadeBuildFromSource=$(ArcadeBuildFromSource)" />
+ <_PublishProperties Include="ArcadeInnerBuildFromSource=true" />
+ <_PublishProperties Include="DotNetBuildFromSource=$(DotNetBuildFromSource)" />
+ <_PublishProperties Include="DotNetBuildFromSourceFlavor=$(DotNetBuildFromSourceFlavor)" />
+ <_PublishProperties Include="DotNetBuildInnerRepo=true" />
+ <_PublishProperties Include="DotNetBuildOrchestrator=$(DotNetBuildOrchestrator)" />
+ <_PublishProperties Include="DotNetBuildPhase=InnerRepo" />
+ <_PublishProperties Include="DotNetBuildRepo=$(DotNetBuildRepo)" />
+ <_PublishProperties Include="DotNetBuildSourceOnly=$(DotNetBuildSourceOnly)" />
+ <_PublishProperties Include="DotNetPublishUsingPipelines=true" />
+ <_PublishProperties Include="PublishToSymbolServer=false" />
+ <_PublishProperties Include="AssetsLocalStorageDir=$(SourceBuiltAssetsDir)" />
+ <_PublishProperties Include="ShippingPackagesLocalStorageDir=$(SourceBuiltShippingPackagesDir)" />
+ <_PublishProperties Include="NonShippingPackagesLocalStorageDir=$(SourceBuiltNonShippingPackagesDir)" />
+ <_PublishProperties Include="AssetManifestsLocalStorageDir=$(SourceBuiltAssetManifestsDir)" />
+ </ItemGroup>
+
+ <MSBuild Projects="$(ArcadeDir)Publish.proj"
+ Properties="@(_PublishProperties)"
+ Targets="Publish"
+ Condition="'$(DotNetBuildOrchestrator)' == 'true'" />
+
</Target>
<Target Name="ApplySourceBuildPatchFiles">

View file

@ -0,0 +1,50 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Nikola Milosavljevic <nikolam@microsoft.com>
Date: Thu, 7 Mar 2024 21:52:02 +0000
Subject: [PATCH] Enable publishing in VMR
Backport: https://github.com/dotnet/roslyn-analyzers/pull/7233
---
eng/Publishing.props | 32 +++++++++++++++++++++++++++-----
1 file changed, 27 insertions(+), 5 deletions(-)
diff --git a/eng/Publishing.props b/eng/Publishing.props
index 579a1360d..c71638ecb 100644
--- a/eng/Publishing.props
+++ b/eng/Publishing.props
@@ -1,7 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<Project>
- <PropertyGroup>
- <PublishingVersion>3</PublishingVersion>
- <ProducesDotNetReleaseShippingAssets>true</ProducesDotNetReleaseShippingAssets>
- </PropertyGroup>
-</Project>
+ <PropertyGroup>
+ <PublishingVersion>3</PublishingVersion>
+ <ProducesDotNetReleaseShippingAssets>true</ProducesDotNetReleaseShippingAssets>
+ <PublishDependsOnTargets>$(PublishDependsOnTargets);_PublishPackages</PublishDependsOnTargets>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <_PackagesToPublish Remove="@(_PackagesToPublish)" />
+ <_PackagesToPublish Include="$(ArtifactsPackagesDir)**\*.nupkg" UploadPathSegment="Roslyn-analyzers" Condition="'$(DotNetBuildRepo)' == 'true'" />
+ </ItemGroup>
+
+ <Target Name="_PublishPackages">
+ <ItemGroup>
+ <!-- Do not push .nupkg files from Linux and macOS builds. They'll be packed up separately and signed on Windows.
+ Do not remove if post build sign is true, as we avoid the xplat codesign jobs, and need to have
+ the nupkgs pushed. Do not do this if building from source, since we want the source build intermediate package
+ to be published. Use DotNetBuildRepo as DotNetBuildFromSource is only set in the internal source build,
+ and Build.proj is invoked from the wrapper build. -->
+ <ItemsToPushToBlobFeed Remove="@(ItemsToPushToBlobFeed)" Condition="'$(OS)' != 'Windows_NT' and '$(PostBuildSign)' != 'true' and '$(DotNetBuildRepo)' != 'true'" />
+
+ <ItemsToPushToBlobFeed Include="@(_PackagesToPublish)">
+ <IsShipping>true</IsShipping>
+ </ItemsToPushToBlobFeed>
+ </ItemGroup>
+ </Target>
+
+</Project>
\ No newline at end of file

View file

@ -0,0 +1,104 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Nikola Milosavljevic <nikolam@microsoft.com>
Date: Thu, 7 Mar 2024 21:59:41 +0000
Subject: [PATCH] Enable publishing in VMR
Backport: https://github.com/dotnet/runtime/pull/99432
---
eng/DotNetBuild.props | 10 ++++++++
eng/Publishing.props | 54 +++++++++++++++++++++++++++++++++++++++++++
2 files changed, 64 insertions(+)
diff --git a/eng/DotNetBuild.props b/eng/DotNetBuild.props
index a6350c7fea9..c7ee305fecc 100644
--- a/eng/DotNetBuild.props
+++ b/eng/DotNetBuild.props
@@ -45,6 +45,10 @@
<!-- Properties that control source-only build configurations should be added to the repository and guarded with DotNetBuildSourceOnly conditions.
This allows to build the repository using './build.sh <args> /p:DotNetBuildSourceOnly=true'.
Properties that control flags from the VMR build, and the expected output for the VMR build should be added to this file. -->
+
+ <!-- Enable regular Arcade publishing in VMR build -->
+ <InnerBuildArgs Condition="'$(DotNetBuildFromSourceFlavor)' == 'Product' or '$(DotNetBuildOrchestrator)' == 'true'">$(InnerBuildArgs) $(FlagParameterPrefix)restore $(FlagParameterPrefix)build $(FlagParameterPrefix)publish</InnerBuildArgs>
+
<InnerBuildArgs>$(InnerBuildArgs) $(FlagParameterPrefix)arch $(TargetArch)</InnerBuildArgs>
<InnerBuildArgs Condition="'$(DotNetBuildSourceOnly)' != 'true'">$(InnerBuildArgs) $(FlagParameterPrefix)os $(TargetOS)</InnerBuildArgs>
<InnerBuildArgs Condition="'$(TargetArch)' != '$(_hostArch)' and '$(ShortStack)' != 'true'">$(InnerBuildArgs) $(FlagParameterPrefix)cross</InnerBuildArgs>
@@ -74,6 +78,12 @@
<InnerBuildArgs Condition="'$(ContinuousIntegrationBuild)' != ''">$(InnerBuildArgs) /p:ContinuousIntegrationBuild=$(ContinuousIntegrationBuild)</InnerBuildArgs>
<InnerBuildArgs Condition="'$(PortableBuild)' != ''">$(InnerBuildArgs) /p:PortableBuild=$(PortableBuild)</InnerBuildArgs>
<InnerBuildArgs Condition="'$(RestoreConfigFile)' != ''">$(InnerBuildArgs) /p:RestoreConfigFile=$(RestoreConfigFile)</InnerBuildArgs>
+
+ <!-- Pass locations for assets and packages -->
+ <InnerBuildArgs Condition="'$(SourceBuiltAssetsDir)' != ''">$(InnerBuildArgs) /p:SourceBuiltAssetsDir=$(SourceBuiltAssetsDir)</InnerBuildArgs>
+ <InnerBuildArgs Condition="'$(SourceBuiltShippingPackagesDir)' != ''">$(InnerBuildArgs) /p:SourceBuiltShippingPackagesDir=$(SourceBuiltShippingPackagesDir)</InnerBuildArgs>
+ <InnerBuildArgs Condition="'$(SourceBuiltNonShippingPackagesDir)' != ''">$(InnerBuildArgs) /p:SourceBuiltNonShippingPackagesDir=$(SourceBuiltNonShippingPackagesDir)</InnerBuildArgs>
+ <InnerBuildArgs Condition="'$(SourceBuiltAssetManifestsDir)' != ''">$(InnerBuildArgs) /p:SourceBuiltAssetManifestsDir=$(SourceBuiltAssetManifestsDir)</InnerBuildArgs>
</PropertyGroup>
</Target>
diff --git a/eng/Publishing.props b/eng/Publishing.props
index 8b796225f82..348da87600d 100644
--- a/eng/Publishing.props
+++ b/eng/Publishing.props
@@ -2,6 +2,60 @@
<PropertyGroup>
<ProducesDotNetReleaseShippingAssets>true</ProducesDotNetReleaseShippingAssets>
+ <PublishDependsOnTargets>$(PublishDependsOnTargets);_PublishInstallers</PublishDependsOnTargets>
</PropertyGroup>
+ <ItemGroup>
+ <_InstallersToPublish Remove="@(_InstallersToPublish)" />
+ <_InstallersToPublish Include="$(ArtifactsPackagesDir)**\*.tar.gz" UploadPathSegment="Runtime" Condition="'$(DotNetBuildRepo)' == 'true'" />
+ <_InstallersToPublish Include="$(ArtifactsPackagesDir)**\*.zip" UploadPathSegment="Runtime" Condition="'$(DotNetBuildRepo)' == 'true'" />
+ <_InstallersToPublish Include="$(ArtifactsPackagesDir)**\*.deb" UploadPathSegment="Runtime" Condition="'$(DotNetBuildRepo)' == 'true'" />
+ <_InstallersToPublish Include="$(ArtifactsPackagesDir)**\*.rpm" UploadPathSegment="Runtime" Condition="'$(DotNetBuildRepo)' == 'true'" />
+ <_InstallersToPublish Include="$(ArtifactsPackagesDir)**\*.exe" UploadPathSegment="Runtime" Condition="'$(DotNetBuildRepo)' == 'true'" />
+ <_InstallersToPublish Include="$(ArtifactsPackagesDir)**\*.msi" UploadPathSegment="Runtime" Condition="'$(DotNetBuildRepo)' == 'true'" />
+ </ItemGroup>
+
+ <Target Name="_PublishInstallers">
+
+ <ItemGroup>
+ <_SymbolsArchive Include="$(ArtifactsPackagesDir)**\Symbols.runtime.tar.gz" Condition="'$(DotNetBuildFromSource)' == 'true'" />
+ <!-- Exclude Symbols archive as it is already included, with correct blob path, in Publish.proj. -->
+ <_InstallersToPublish Remove="@(_SymbolsArchive)" Condition="'$(DotNetBuildFromSource)' == 'true'" />
+ </ItemGroup>
+
+ <!-- Discover the runtime package version from dotnet-runtime-<version-<Rid>.<Extension> archive. -->
+ <PropertyGroup>
+ <_RuntimeFilenamePrefix>dotnet-runtime-</_RuntimeFilenamePrefix>
+ <_PackageRid>$(OutputRID)</_PackageRid>
+ <!-- Use TargetRid if OutputRID isn't available, i.e. on Windows. -->
+ <_PackageRid Condition="'$(_PackageRid)' == ''">$(TargetRid)</_PackageRid>
+ </PropertyGroup>
+ <ItemGroup>
+ <_RuntimeArchiveItem Include="$(ArtifactsPackagesDir)**\$(_RuntimeFilenamePrefix)*$(_PackageRid)$(ArchiveExtension)" />
+ <_RuntimeInternalArchiveItem Include="$(ArtifactsPackagesDir)**\dotnet-runtime-internal*$(_PackageRid)$(ArchiveExtension)" />
+ <_RuntimeArchiveItem Remove="@(_RuntimeInternalArchiveItem)" />
+ </ItemGroup>
+
+ <!-- Extract runtime version from runtime archive filename. -->
+ <PropertyGroup>
+ <_RuntimeArchiveFilename>%(_RuntimeArchiveItem.Filename)%(_RuntimeArchiveItem.Extension)</_RuntimeArchiveFilename>
+ <_RuntimeVersion>$(_RuntimeArchiveFilename.Replace('$(_RuntimeFilenamePrefix)','').Replace('-$(_PackageRid)$(ArchiveExtension)',''))</_RuntimeVersion>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <!-- Do not push .nupkg files from Linux and macOS builds. They'll be packed up separately and signed on Windows.
+ Do not remove if post build sign is true, as we avoid the xplat codesign jobs, and need to have
+ the nupkgs pushed. Do not do this if building from source, since we want the source build intermediate package
+ to be published. Use DotNetBuildRepo as DotNetBuildFromSource is only set in the internal source build,
+ and Build.proj is invoked from the wrapper build. -->
+ <ItemsToPushToBlobFeed Remove="@(ItemsToPushToBlobFeed)" Condition="'$(OS)' != 'Windows_NT' and '$(PostBuildSign)' != 'true' and '$(DotNetBuildRepo)' != 'true'" />
+
+ <ItemsToPushToBlobFeed Include="@(_InstallersToPublish)">
+ <ManifestArtifactData>NonShipping=false</ManifestArtifactData>
+ <PublishFlatContainer>true</PublishFlatContainer>
+ <RelativeBlobPath>%(_InstallersToPublish.UploadPathSegment)/$(_RuntimeVersion)/%(Filename)%(Extension)</RelativeBlobPath>
+ </ItemsToPushToBlobFeed>
+ </ItemGroup>
+ </Target>
+
</Project>

View file

@ -0,0 +1,83 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Nikola Milosavljevic <nikolam@microsoft.com>
Date: Tue, 12 Mar 2024 22:54:09 +0000
Subject: [PATCH] Enable publishing in VMR
Backport: https://github.com/dotnet/sdk/pull/39311
---
eng/Publishing.props | 37 ++++++++++++++++++++++++++++++++++---
1 file changed, 34 insertions(+), 3 deletions(-)
diff --git a/eng/Publishing.props b/eng/Publishing.props
index 0e6e2ec2fb..e95cf5b80b 100644
--- a/eng/Publishing.props
+++ b/eng/Publishing.props
@@ -15,7 +15,7 @@
<SdkAssetManifestFileName>$(OS)-$(PlatformName)-SdkAssets.xml</SdkAssetManifestFileName>
<SdkAssetsManifestFilePath>$(ArtifactsLogDir)AssetManifest\$(SdkAssetManifestFileName)</SdkAssetsManifestFilePath>
- <TempWorkingDirectory>$(ArtifactsDir)\..\AssetsTmpDir\$([System.Guid]::NewGuid())</TempWorkingDirectory>
+ <TempWorkingDirectory>$(ArtifactsDir)\AssetsTmpDir\$([System.Guid]::NewGuid())</TempWorkingDirectory>
</PropertyGroup>
<!-- Pulled from arcade's publish.proj see https://github.com/dotnet/arcade/issues/5790 for
@@ -78,7 +78,7 @@
<ItemsToPushToBlobFeed Include="@(FSharpPackagesToPush)" />
</ItemGroup>
</Target>
-
+
<!-- We use a separate target to publish this to blob storage so that we can push this to
a relative path inside the blob storage. -->
<Target Name="PublishToolsetAssets" DependsOnTargets="ReadToolsetVersion" BeforeTargets="Publish">
@@ -98,11 +98,15 @@
<IsStableBuild>false</IsStableBuild>
<IsStableBuild Condition="'$(DotNetFinalVersionKind)' == 'release'">true</IsStableBuild>
</PropertyGroup>
-
<MakeDir Directories="$(TempWorkingDirectory)"/>
+ <!--
+ Delete PushToAzureDevOpsArtifacts task and remove condition from PushToBuildStorage task
+ after this repo picks up arcade with the following change: https://github.com/dotnet/arcade/pull/14559
+ -->
<PushToAzureDevOpsArtifacts
+ Condition="'$(DotNetBuildOrchestrator)' != 'true'"
AzureDevOpsCollectionUri="$(SYSTEM_TEAMFOUNDATIONCOLLECTIONURI)"
AzureDevOpsProject="$(SYSTEM_TEAMPROJECT)"
AzureDevOpsBuildId="$(BUILD_BUILDID)"
@@ -123,6 +127,33 @@
PublishingVersion="3"
IsStableBuild="$(IsStableBuild)" />
+ <PushToBuildStorage
+ Condition="'$(DotNetBuildOrchestrator)' == 'true'"
+ AzureDevOpsCollectionUri="$(SYSTEM_TEAMFOUNDATIONCOLLECTIONURI)"
+ AzureDevOpsProject="$(SYSTEM_TEAMPROJECT)"
+ AzureDevOpsBuildId="$(BUILD_BUILDID)"
+ ItemsToPush="@(ToolsetAssetsToPushToBlobFeed)"
+ ItemsToSign="@(ItemsToSignPostBuild)"
+ CertificatesSignInfo="@(CertificatesSignInfo)"
+ StrongNameSignInfo="@(StrongNameSignInfo)"
+ FileSignInfo="@(FileSignInfo)"
+ FileExtensionSignInfo="@(FileExtensionSignInfo)"
+ ManifestBuildData="@(ManifestBuildData)"
+ ManifestRepoUri="$(BUILD_REPOSITORY_NAME)"
+ ManifestBranch="$(BUILD_SOURCEBRANCH)"
+ ManifestBuildId="$(BUILD_BUILDNUMBER)"
+ ManifestCommit="$(BUILD_SOURCEVERSION)"
+ PublishFlatContainer="true"
+ AssetManifestPath="$(SdkAssetsManifestFilePath)"
+ AssetsTemporaryDirectory="$(TempWorkingDirectory)"
+ PublishingVersion="3"
+ IsStableBuild="$(IsStableBuild)"
+ PushToLocalStorage="$(PushToLocalStorage)"
+ AssetsLocalStorageDir="$(SourceBuiltAssetsDir)"
+ ShippingPackagesLocalStorageDir="$(SourceBuiltShippingPackagesDir)"
+ NonShippingPackagesLocalStorageDir="$(SourceBuiltNonShippingPackagesDir)"
+ AssetManifestsLocalStorageDir="$(SourceBuiltAssetManifestsDir)" />
+
<Copy
SourceFiles="$(SdkAssetsManifestFilePath)"
DestinationFolder="$(TempWorkingDirectory)\$(SdkAssetManifestFileName)" />

View file

@ -0,0 +1,42 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Nikola Milosavljevic <nikolam@microsoft.com>
Date: Thu, 7 Mar 2024 22:10:43 +0000
Subject: [PATCH] Enable publishing in VMR
Backport: https://github.com/dotnet/source-build-externals/pull/275
---
eng/Publishing.props | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/eng/Publishing.props b/eng/Publishing.props
index d3aa836..3629bb8 100644
--- a/eng/Publishing.props
+++ b/eng/Publishing.props
@@ -2,5 +2,27 @@
<Project>
<PropertyGroup>
<PublishingVersion>3</PublishingVersion>
+ <PublishDependsOnTargets>$(PublishDependsOnTargets);_PublishPackages</PublishDependsOnTargets>
</PropertyGroup>
+
+ <ItemGroup>
+ <_PackagesToPublish Remove="@(_PackagesToPublish)" />
+ <_PackagesToPublish Include="$(ArtifactsPackagesDir)**\*.nupkg" UploadPathSegment="Runtime" Condition="'$(DotNetBuildRepo)' == 'true'" />
+ </ItemGroup>
+
+ <Target Name="_PublishPackages">
+ <ItemGroup>
+ <!-- Do not push .nupkg files from Linux and macOS builds. They'll be packed up separately and signed on Windows.
+ Do not remove if post build sign is true, as we avoid the xplat codesign jobs, and need to have
+ the nupkgs pushed. Do not do this if building from source, since we want the source build intermediate package
+ to be published. Use DotNetBuildRepo as DotNetBuildFromSource is only set in the internal source build,
+ and Build.proj is invoked from the wrapper build. -->
+ <ItemsToPushToBlobFeed Remove="@(ItemsToPushToBlobFeed)" Condition="'$(OS)' != 'Windows_NT' and '$(PostBuildSign)' != 'true' and '$(DotNetBuildRepo)' != 'true'" />
+
+ <ItemsToPushToBlobFeed Include="@(_PackagesToPublish)">
+ <IsShipping>true</IsShipping>
+ </ItemsToPushToBlobFeed>
+ </ItemGroup>
+ </Target>
+
</Project>

View file

@ -0,0 +1,45 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Nikola Milosavljevic <nikolam@microsoft.com>
Date: Thu, 7 Mar 2024 22:15:41 +0000
Subject: [PATCH] Enable publishing in VMR
Backport: https://github.com/dotnet/symreader/pull/312
---
eng/Publishing.props | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
create mode 100644 eng/Publishing.props
diff --git a/eng/Publishing.props b/eng/Publishing.props
new file mode 100644
index 0000000..3629bb8
--- /dev/null
+++ b/eng/Publishing.props
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project>
+ <PropertyGroup>
+ <PublishingVersion>3</PublishingVersion>
+ <PublishDependsOnTargets>$(PublishDependsOnTargets);_PublishPackages</PublishDependsOnTargets>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <_PackagesToPublish Remove="@(_PackagesToPublish)" />
+ <_PackagesToPublish Include="$(ArtifactsPackagesDir)**\*.nupkg" UploadPathSegment="Runtime" Condition="'$(DotNetBuildRepo)' == 'true'" />
+ </ItemGroup>
+
+ <Target Name="_PublishPackages">
+ <ItemGroup>
+ <!-- Do not push .nupkg files from Linux and macOS builds. They'll be packed up separately and signed on Windows.
+ Do not remove if post build sign is true, as we avoid the xplat codesign jobs, and need to have
+ the nupkgs pushed. Do not do this if building from source, since we want the source build intermediate package
+ to be published. Use DotNetBuildRepo as DotNetBuildFromSource is only set in the internal source build,
+ and Build.proj is invoked from the wrapper build. -->
+ <ItemsToPushToBlobFeed Remove="@(ItemsToPushToBlobFeed)" Condition="'$(OS)' != 'Windows_NT' and '$(PostBuildSign)' != 'true' and '$(DotNetBuildRepo)' != 'true'" />
+
+ <ItemsToPushToBlobFeed Include="@(_PackagesToPublish)">
+ <IsShipping>true</IsShipping>
+ </ItemsToPushToBlobFeed>
+ </ItemGroup>
+ </Target>
+
+</Project>

View file

@ -0,0 +1,57 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Nikola Milosavljevic <nikolam@microsoft.com>
Date: Thu, 7 Mar 2024 22:19:59 +0000
Subject: [PATCH] Enable publishing in VMR
Backport: https://github.com/dotnet/windowsdesktop/pull/4215
---
eng/Publishing.props | 40 ++++++++++++++++++++++++++++++++++++----
1 file changed, 36 insertions(+), 4 deletions(-)
diff --git a/eng/Publishing.props b/eng/Publishing.props
index a2ad9884..0426da4f 100644
--- a/eng/Publishing.props
+++ b/eng/Publishing.props
@@ -1,5 +1,37 @@
<Project>
- <PropertyGroup>
- <ProducesDotNetReleaseShippingAssets>true</ProducesDotNetReleaseShippingAssets>
- </PropertyGroup>
-</Project>
\ No newline at end of file
+
+ <PropertyGroup>
+ <ProducesDotNetReleaseShippingAssets>true</ProducesDotNetReleaseShippingAssets>
+ <PublishDependsOnTargets>$(PublishDependsOnTargets);_PublishInstallers</PublishDependsOnTargets>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <_InstallersToPublish Remove="@(_InstallersToPublish)" />
+ <_InstallersToPublish Include="$(ArtifactsPackagesDir)**\*.zip" UploadPathSegment="WindowsDesktop" Condition="'$(DotNetBuildRepo)' == 'true'" />
+ <_InstallersToPublish Include="$(ArtifactsPackagesDir)**\*.exe" UploadPathSegment="WindowsDesktop" Condition="'$(DotNetBuildRepo)' == 'true'" />
+ <_InstallersToPublish Include="$(ArtifactsPackagesDir)**\*.msi" UploadPathSegment="WindowsDesktop" Condition="'$(DotNetBuildRepo)' == 'true'" />
+ </ItemGroup>
+
+ <Target Name="_PublishInstallers">
+
+ <ItemGroup>
+ <!-- Do not push .nupkg files from Linux and macOS builds. They'll be packed up separately and signed on Windows.
+ Do not remove if post build sign is true, as we avoid the xplat codesign jobs, and need to have
+ the nupkgs pushed. Do not do this if building from source, since we want the source build intermediate package
+ to be published. Use DotNetBuildRepo as DotNetBuildFromSource is only set in the internal source build,
+ and Build.proj is invoked from the wrapper build. -->
+ <ItemsToPushToBlobFeed Remove="@(ItemsToPushToBlobFeed)" Condition="'$(OS)' != 'Windows_NT' and '$(PostBuildSign)' != 'true' and '$(DotNetBuildRepo)' != 'true'" />
+
+ <!--
+ MicrosoftWindowsDesktopAppRuntimewinx64PackageVersion is x64 version - there is no Rid-specific property.
+ TODO: This will need to be updated to support arm64.
+ -->
+ <ItemsToPushToBlobFeed Include="@(_InstallersToPublish)">
+ <ManifestArtifactData>NonShipping=false</ManifestArtifactData>
+ <PublishFlatContainer>true</PublishFlatContainer>
+ <RelativeBlobPath>%(_InstallersToPublish.UploadPathSegment)/$(MicrosoftWindowsDesktopAppRuntimewinx64PackageVersion)/%(Filename)%(Extension)</RelativeBlobPath>
+ </ItemsToPushToBlobFeed>
+ </ItemGroup>
+ </Target>
+
+</Project>

View file

@ -102,23 +102,18 @@
</PropertyGroup>
<!-- Generate the version specific URLs to the targeting packs, runtime packs, etc. -->
<!-- VMR builds currently use a flat layout under the provided PublicBaseURL -->
<PropertyGroup>
<NetRuntimeRootUrl>$(PublicBaseURL)Runtime/$(NetRuntimeBlobVersion)</NetRuntimeRootUrl>
<NetRuntimeRootUrl Condition=" '$(DotNetBuildOrchestrator)' == 'true' ">$(PublicBaseURL)</NetRuntimeRootUrl>
<NetStandardTargetingPackRootUrl>$(OfficialBaseURL)Runtime/$(NETStandardTargetingPackBlobVersion)</NetStandardTargetingPackRootUrl>
<AspNetCoreSharedFxRootUrl>$(PublicBaseURL)aspnetcore/Runtime/$(AspNetCoreBlobVersion)</AspNetCoreSharedFxRootUrl>
<AspNetCoreSharedFxRootUrl Condition=" '$(DotNetBuildOrchestrator)' == 'true' and '$(DotNetBuildSourceOnly)' == 'true'">$(PublicBaseURL)</AspNetCoreSharedFxRootUrl>
<!-- Aspnet is not currently built in the VMR. Remove this line when https://github.com/dotnet/source-build/issues/4022 is complete. -->
<AspNetCoreSharedFxRootUrl Condition=" '$(DotNetBuildOrchestrator)' == 'true' and '$(DotNetBuildSourceOnly)' != 'true'">$(FallbackPublicBaseURL)aspnetcore/Runtime/$(AspNetCoreBlobVersion)</AspNetCoreSharedFxRootUrl>
<WinFormsAndWpfSharedFxRootUrl>$(PublicBaseURL)WindowsDesktop/$(WindowsDesktopBlobVersion)</WinFormsAndWpfSharedFxRootUrl>
<WinFormsAndWpfSharedFxRootUrl Condition=" '$(DotNetBuildOrchestrator)' == 'true' ">$(PublicBaseURL)</WinFormsAndWpfSharedFxRootUrl>
<ToolsetArchiveRootUrl>$(PublicBaseURL)Sdk/$(MicrosoftDotnetToolsetInternalPackageVersion)</ToolsetArchiveRootUrl>
<ToolsetArchiveRootUrl Condition=" '$(DotNetBuildOrchestrator)' == 'true' ">$(PublicBaseURL)</ToolsetArchiveRootUrl>
<NetRuntimeDownloadDirectory>$(IntermediateDirectory)/coreSetupDownload/$(MicrosoftNETCoreAppRuntimePackageVersion)</NetRuntimeDownloadDirectory>
<CombinedSharedHostAndFrameworkArchive>$(NetRuntimeDownloadDirectory)/combinedSharedHostAndFrameworkArchive$(ArchiveExtension)</CombinedSharedHostAndFrameworkArchive>