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" /> + +