diff --git a/eng/pipelines/templates/jobs/vmr-build.yml b/eng/pipelines/templates/jobs/vmr-build.yml
index ff17bee979a3..21bd63d84204 100644
--- a/eng/pipelines/templates/jobs/vmr-build.yml
+++ b/eng/pipelines/templates/jobs/vmr-build.yml
@@ -212,6 +212,8 @@ jobs:
### Signing variables
- ${{ if eq(parameters.sign, 'True') }}:
+ - name: _SignDiagnosticFilesArgs
+ value: ''
- ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}:
# The _SignType variable is used by microbuild installation
- name: _SignType
@@ -223,9 +225,16 @@ jobs:
value: real
- name: signArguments
value: -sign /p:DotNetSignType=real /p:TeamName=$(_TeamName)
+ - name: _EnableDacSigning
+ ${{ if and(eq(parameters.isBuiltFromVmr, true), ne(parameters.buildSourceOnly, 'True')) }}:
+ value: true
+ ${{ else }}:
+ value: false
- ${{ else }}:
- name: signArguments
value: ''
+ - name: _SignDiagnosticFilesArgs
+ value: ''
### Build Pass
- ${{ if ne(parameters.buildPass, '') }}:
@@ -384,16 +393,36 @@ jobs:
inputs:
versionSpec: 20.x
+ - ${{ if eq(variables['_EnableDacSigning'], 'true') }}:
+ # TODO: Once we turn off the dotnet/runtime official build, move these templates into the VMR's eng folder.
+ - template: ${{ variables['Build.SourcesDirectory'] }}/src/runtime/eng/pipelines/coreclr/templates/install-diagnostic-certs.yml
+ parameters:
+ isOfficialBuild: ${{ variables.isOfficialBuild }}
+ certNames:
+ - 'dotnetesrp-diagnostics-aad-ssl-cert'
+ - 'dotnet-diagnostics-esrp-pki-onecert'
+ vaultName: 'clrdiag-esrp-id'
+ azureSubscription: 'diagnostics-esrp-kvcertuser'
+ scriptRoot: '$(Build.SourcesDirectory)/src/runtime'
+
- script: build.cmd
$(baseArguments)
$(targetArguments)
$(signArguments)
$(buildPassArguments)
$(ibcArguments)
+ $(_SignDiagnosicFilesArgs)
${{ parameters.extraProperties }}
displayName: Build
workingDirectory: ${{ variables.sourcesPath }}
+ - ${{ if eq(variables['_EnableDacSigning'], 'true') }}:
+ # TODO: Once we turn off the dotnet/runtime official build, move these templates into the VMR's eng folder.
+ - template: ${{ variables['Build.SourcesDirectory'] }}/src/runtime/eng/pipelines/coreclr/templates/remove-diagnostic-certs.yml
+ parameters:
+ isOfficialBuild: ${{ variables.isOfficialBuild }}
+ scriptRoot: '$(Build.SourcesDirectory)/src/runtime'
+
- ${{ if eq(parameters.runTests, 'True') }}:
- script: build.cmd
$(baseArguments)
diff --git a/eng/pipelines/templates/stages/vmr-build.yml b/eng/pipelines/templates/stages/vmr-build.yml
index 8b2b920cf5a0..053ee6c149c5 100644
--- a/eng/pipelines/templates/stages/vmr-build.yml
+++ b/eng/pipelines/templates/stages/vmr-build.yml
@@ -868,6 +868,23 @@ stages:
- Windows_x86
- Windows_arm64
+ - template: ../jobs/vmr-build.yml
+ parameters:
+ buildName: Windows
+ isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
+ vmrBranch: ${{ variables.VmrBranch }}
+ pool: ${{ parameters.pool_Windows }}
+ targetOS: windows
+ targetArchitecture: x86
+ buildPass: 2
+ reuseBuildArtifactsFrom:
+ - AzureLinux_x64_Cross_x64
+ - AzureLinux_x64_Cross_Alpine_x64
+ - AzureLinux_x64_Cross_arm64
+ - AzureLinux_x64_Cross_Alpine_arm64
+ - AzureLinux_x64_Cross_arm
+ - AzureLinux_x64_Cross_Alpine_arm
+
### FINAL JOIN ###
- ${{ if and(parameters.isBuiltFromVmr, not(parameters.isSourceOnlyBuild), ne(variables['Build.Reason'], 'PullRequest')) }}:
- stage: VMR_Final_Join
diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/UpdateNuGetConfigPackageSourcesMappings.cs b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/UpdateNuGetConfigPackageSourcesMappings.cs
index 62c89d61077a..7d526832d0df 100644
--- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/UpdateNuGetConfigPackageSourcesMappings.cs
+++ b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/UpdateNuGetConfigPackageSourcesMappings.cs
@@ -50,6 +50,9 @@ public class UpdateNuGetConfigPackageSourcesMappings : Task
[Required]
public string SourceBuiltSourceNamePrefix { get; set; }
+ [Required]
+ public string PreviousBuildPassSourceNamePrefix { get; set; }
+
public string SbrpCacheSourceName { get; set; }
public string ReferencePackagesSourceName { get; set; }
@@ -255,6 +258,7 @@ private XElement GetPackageMappingsElementForSource(string packageSource)
{
bool isCurrentSourceBuiltSource =
packageSource.StartsWith(SourceBuiltSourceNamePrefix) ||
+ packageSource.StartsWith(PreviousBuildPassSourceNamePrefix) ||
packageSource.Equals(SbrpCacheSourceName) ||
packageSource.Equals(ReferencePackagesSourceName);
@@ -328,6 +332,10 @@ private void DiscoverPackagesFromAllSourceBuildSources(XElement pkgSourcesElemen
{
AddToDictionary(currentPackages, id, version);
}
+ else if (packageSource.StartsWith(PreviousBuildPassSourceNamePrefix))
+ {
+ AddToDictionary(currentPackages, id, version);
+ }
else if (packageSource.Equals(ReferencePackagesSourceName))
{
AddToDictionary(referencePackages, id, version);
diff --git a/src/SourceBuild/content/repo-projects/Directory.Build.props b/src/SourceBuild/content/repo-projects/Directory.Build.props
index 7e9dab487c46..5859110e7fe7 100644
--- a/src/SourceBuild/content/repo-projects/Directory.Build.props
+++ b/src/SourceBuild/content/repo-projects/Directory.Build.props
@@ -52,6 +52,7 @@
source-build-reference-package-cache
source-built-
+ previous-build-pass-
$([MSBuild]::ValueOrDefault('$(ARCADE_BOOTSTRAP_VERSION)', '$(ArcadeSdkVersion)'))
diff --git a/src/SourceBuild/content/repo-projects/Directory.Build.targets b/src/SourceBuild/content/repo-projects/Directory.Build.targets
index 68d0d163e1a3..1ded130d42f8 100644
--- a/src/SourceBuild/content/repo-projects/Directory.Build.targets
+++ b/src/SourceBuild/content/repo-projects/Directory.Build.targets
@@ -117,6 +117,15 @@
+
+
+ $(PreviousBuildPassSourceNamePrefix)$(RepositoryName)
+ $(PreviousBuildPassSourceNamePrefix)transport-$(RepositoryName)
+ $(ArtifactsShippingPackagesDir)/$(RepositoryName)/
+ $(ArtifactsNonShippingPackagesDir)/$(RepositoryName)/
+
+
+
@@ -236,6 +245,7 @@
PreviouslySourceBuiltSourceName="$(PreviouslySourceBuiltNuGetSourceName)"
PrebuiltSourceName="$(PrebuiltNuGetSourceName)"
SourceBuiltSourceNamePrefix="$(SourceBuiltSourceNamePrefix)"
+ PreviousBuildPassSourceNamePrefix="$(PreviousBuildPassSourceNamePrefix)"
CustomSources="$(NetSdkSupportingFeedName)" />
diff --git a/src/SourceBuild/content/repo-projects/dotnet.proj b/src/SourceBuild/content/repo-projects/dotnet.proj
index 3cf110dfa7a8..5f099843db78 100644
--- a/src/SourceBuild/content/repo-projects/dotnet.proj
+++ b/src/SourceBuild/content/repo-projects/dotnet.proj
@@ -14,9 +14,16 @@
-
+
+
+
+
+
+
+
+
diff --git a/src/SourceBuild/content/repo-projects/runtime.proj b/src/SourceBuild/content/repo-projects/runtime.proj
index 6f7caa562bc5..9abf002995ca 100644
--- a/src/SourceBuild/content/repo-projects/runtime.proj
+++ b/src/SourceBuild/content/repo-projects/runtime.proj
@@ -29,6 +29,9 @@
$(BuildArgs) /p:UseSystemLibs=$(UseSystemLibs)
+
+ $(BuildArgs) /p:DotNetEsrpToolPath=$(DotNetEsrpToolPath)
+
$(BuildArgs) /p:NetCoreAppToolCurrentVersion=10.0
diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.Tests/PackageSourceMappingsTests.cs b/src/SourceBuild/content/test/Microsoft.DotNet.Tests/PackageSourceMappingsTests.cs
index d6c39b535c8c..452063d9ee4d 100755
--- a/src/SourceBuild/content/test/Microsoft.DotNet.Tests/PackageSourceMappingsTests.cs
+++ b/src/SourceBuild/content/test/Microsoft.DotNet.Tests/PackageSourceMappingsTests.cs
@@ -20,7 +20,7 @@ public class PackageSourceMappingsTests
private const string NetSdkSupportingFeedName = "net-sdk-supporting-feed";
private const string ArcadeSourceName = "source-built-arcade";
- private const string RuntimeSourceName = "source-built-runtime";
+ private const string RuntimeSourceName = "previous-build-pass-runtime";
private const string PrebuiltSourceName = "prebuilt";
private const string PreviouslySourceBuiltSourceName = "previously-source-built";
private const string ReferencePackagesSourceName = "reference-packages";
@@ -89,6 +89,7 @@ private static void RunTest(string nugetConfigFilename, bool useOnlineFeeds, str
SbrpCacheSourceName = "source-build-reference-package-cache",
SbrpRepoSrcPath = TestSetup.SourceBuildReferencePackagesRepo,
SourceBuiltSourceNamePrefix = "source-built-",
+ PreviousBuildPassSourceNamePrefix = "previous-build-pass-",
NuGetConfigFile = modifiedNugetConfig,
BuildWithOnlineFeeds = useOnlineFeeds,
SourceBuildSources = sources,
diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/expected/sb-mappings-offline.config b/src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/expected/sb-mappings-offline.config
index eff02a7bd07b..524e9574dca0 100755
--- a/src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/expected/sb-mappings-offline.config
+++ b/src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/expected/sb-mappings-offline.config
@@ -2,7 +2,7 @@
-
+
@@ -25,7 +25,7 @@
-->
-
+
diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/expected/sb-mappings-online.config b/src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/expected/sb-mappings-online.config
index ca37e3a21d22..1b58b83ff9ac 100755
--- a/src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/expected/sb-mappings-online.config
+++ b/src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/expected/sb-mappings-online.config
@@ -2,7 +2,7 @@
-
+
@@ -38,7 +38,7 @@
-->
-
+
diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/expected/sb-nomappings-offline.config b/src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/expected/sb-nomappings-offline.config
index 57658e3f9c94..469b54cf902e 100755
--- a/src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/expected/sb-nomappings-offline.config
+++ b/src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/expected/sb-nomappings-offline.config
@@ -3,7 +3,7 @@
-
+
@@ -14,7 +14,7 @@
-
+
diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/expected/sb-nomappings-online.config b/src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/expected/sb-nomappings-online.config
index 2a741f4ceb63..5acd77490a93 100755
--- a/src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/expected/sb-nomappings-online.config
+++ b/src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/expected/sb-nomappings-online.config
@@ -3,7 +3,7 @@
-
+
@@ -17,7 +17,7 @@
-
+
diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/expected/ub-mappings.config b/src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/expected/ub-mappings.config
index 8b218d55536d..be07e46d91c4 100755
--- a/src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/expected/ub-mappings.config
+++ b/src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/expected/ub-mappings.config
@@ -3,7 +3,7 @@
-
+
@@ -11,7 +11,7 @@
-
+
diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/expected/ub-nomappings.config b/src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/expected/ub-nomappings.config
index 3c6dddadb947..1c7970432b67 100755
--- a/src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/expected/ub-nomappings.config
+++ b/src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/expected/ub-nomappings.config
@@ -4,7 +4,7 @@
-
+
@@ -15,7 +15,7 @@
-
+
diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/original/sb-mappings-offline.config b/src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/original/sb-mappings-offline.config
index 13914fc9ddd8..0ea66cca112c 100755
--- a/src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/original/sb-mappings-offline.config
+++ b/src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/original/sb-mappings-offline.config
@@ -2,7 +2,7 @@
-
+
@@ -133,4 +133,4 @@
-
\ No newline at end of file
+
diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/original/sb-mappings-online.config b/src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/original/sb-mappings-online.config
index b1446820ee45..2f4c93bb9abd 100755
--- a/src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/original/sb-mappings-online.config
+++ b/src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/original/sb-mappings-online.config
@@ -2,7 +2,7 @@
-
+
@@ -146,4 +146,4 @@
-
\ No newline at end of file
+
diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/original/sb-nomappings-offline.config b/src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/original/sb-nomappings-offline.config
index f84ad454ccfb..e5377c52dbf9 100755
--- a/src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/original/sb-nomappings-offline.config
+++ b/src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/original/sb-nomappings-offline.config
@@ -3,7 +3,7 @@
-
+
@@ -12,4 +12,4 @@
-
\ No newline at end of file
+
diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/original/sb-nomappings-online.config b/src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/original/sb-nomappings-online.config
index ac466ed14ed3..e86e4ba81a04 100755
--- a/src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/original/sb-nomappings-online.config
+++ b/src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/original/sb-nomappings-online.config
@@ -3,7 +3,7 @@
-
+
@@ -15,4 +15,4 @@
-
\ No newline at end of file
+
diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/original/ub-mappings.config b/src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/original/ub-mappings.config
index 64d46fc17667..48a896c71f64 100755
--- a/src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/original/ub-mappings.config
+++ b/src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/original/ub-mappings.config
@@ -3,7 +3,7 @@
-
+
@@ -37,4 +37,4 @@
-
\ No newline at end of file
+
diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/original/ub-nomappings.config b/src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/original/ub-nomappings.config
index f39b94f4b00c..b93ba6ce789e 100755
--- a/src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/original/ub-nomappings.config
+++ b/src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/original/ub-nomappings.config
@@ -4,7 +4,7 @@
-
+
diff --git a/src/SourceBuild/patches/runtime/0003-dont-build-host-tools.patch b/src/SourceBuild/patches/runtime/0003-dont-build-host-tools.patch
new file mode 100644
index 000000000000..507d06f5b771
--- /dev/null
+++ b/src/SourceBuild/patches/runtime/0003-dont-build-host-tools.patch
@@ -0,0 +1,24 @@
+From 282fb06e2d46d0a6b80a4ee737e402063f3409c3 Mon Sep 17 00:00:00 2001
+From: Jeremy Koritzinsky
+Date: Tue, 11 Feb 2025 14:40:59 -0800
+Subject: [PATCH] Don't build host tools when building the cross-os DACs
+
+Backport: https://github.com/dotnet/runtime/pull/112454
+---
+ .../Microsoft.CrossOsDiag.Private.CoreCLR.proj | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/coreclr/.nuget/Microsoft.CrossOsDiag.Private.CoreCLR/Microsoft.CrossOsDiag.Private.CoreCLR.proj b/src/coreclr/.nuget/Microsoft.CrossOsDiag.Private.CoreCLR/Microsoft.CrossOsDiag.Private.CoreCLR.proj
+index 4fbe217f42068c..2687500c79b917 100644
+--- a/src/coreclr/.nuget/Microsoft.CrossOsDiag.Private.CoreCLR/Microsoft.CrossOsDiag.Private.CoreCLR.proj
++++ b/src/coreclr/.nuget/Microsoft.CrossOsDiag.Private.CoreCLR/Microsoft.CrossOsDiag.Private.CoreCLR.proj
+@@ -32,7 +32,8 @@
+ <_CrossOSDacProject Include="@(SupportedRid->'$(RepoRoot)Build.proj')"
+ AdditionalProperties="TargetOS=%(TargetOS);
+ TargetArchitecture=%(TargetArchitecture);
+- Subset=linuxdac+alpinedac" />
++ Subset=linuxdac+alpinedac;
++ BuildHostTools=false" />
+ <_RuntimePrereqsProject Include="$(CoreClrProjectRoot)runtime-prereqs.proj" />
+
+