Skip to content

Commit b135dbb

Browse files
authored
Sign the DAC and build (and sign) the cross-OS DACs in the VMR (#46377)
1 parent 1eb697b commit b135dbb

21 files changed

+125
-25
lines changed

eng/pipelines/templates/jobs/vmr-build.yml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,8 @@ jobs:
212212

213213
### Signing variables
214214
- ${{ if eq(parameters.sign, 'True') }}:
215+
- name: _SignDiagnosticFilesArgs
216+
value: ''
215217
- ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}:
216218
# The _SignType variable is used by microbuild installation
217219
- name: _SignType
@@ -223,9 +225,16 @@ jobs:
223225
value: real
224226
- name: signArguments
225227
value: -sign /p:DotNetSignType=real /p:TeamName=$(_TeamName)
228+
- name: _EnableDacSigning
229+
${{ if and(eq(parameters.isBuiltFromVmr, true), ne(parameters.buildSourceOnly, 'True')) }}:
230+
value: true
231+
${{ else }}:
232+
value: false
226233
- ${{ else }}:
227234
- name: signArguments
228235
value: ''
236+
- name: _SignDiagnosticFilesArgs
237+
value: ''
229238

230239
### Build Pass
231240
- ${{ if ne(parameters.buildPass, '') }}:
@@ -384,16 +393,36 @@ jobs:
384393
inputs:
385394
versionSpec: 20.x
386395

396+
- ${{ if eq(variables['_EnableDacSigning'], 'true') }}:
397+
# TODO: Once we turn off the dotnet/runtime official build, move these templates into the VMR's eng folder.
398+
- template: ${{ variables['Build.SourcesDirectory'] }}/src/runtime/eng/pipelines/coreclr/templates/install-diagnostic-certs.yml
399+
parameters:
400+
isOfficialBuild: ${{ variables.isOfficialBuild }}
401+
certNames:
402+
- 'dotnetesrp-diagnostics-aad-ssl-cert'
403+
- 'dotnet-diagnostics-esrp-pki-onecert'
404+
vaultName: 'clrdiag-esrp-id'
405+
azureSubscription: 'diagnostics-esrp-kvcertuser'
406+
scriptRoot: '$(Build.SourcesDirectory)/src/runtime'
407+
387408
- script: build.cmd
388409
$(baseArguments)
389410
$(targetArguments)
390411
$(signArguments)
391412
$(buildPassArguments)
392413
$(ibcArguments)
414+
$(_SignDiagnosicFilesArgs)
393415
${{ parameters.extraProperties }}
394416
displayName: Build
395417
workingDirectory: ${{ variables.sourcesPath }}
396418

419+
- ${{ if eq(variables['_EnableDacSigning'], 'true') }}:
420+
# TODO: Once we turn off the dotnet/runtime official build, move these templates into the VMR's eng folder.
421+
- template: ${{ variables['Build.SourcesDirectory'] }}/src/runtime/eng/pipelines/coreclr/templates/remove-diagnostic-certs.yml
422+
parameters:
423+
isOfficialBuild: ${{ variables.isOfficialBuild }}
424+
scriptRoot: '$(Build.SourcesDirectory)/src/runtime'
425+
397426
- ${{ if eq(parameters.runTests, 'True') }}:
398427
- script: build.cmd
399428
$(baseArguments)

eng/pipelines/templates/stages/vmr-build.yml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -880,6 +880,23 @@ stages:
880880
- Windows_x86
881881
- Windows_arm64
882882

883+
- template: ../jobs/vmr-build.yml
884+
parameters:
885+
buildName: Windows
886+
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
887+
vmrBranch: ${{ variables.VmrBranch }}
888+
pool: ${{ parameters.pool_Windows }}
889+
targetOS: windows
890+
targetArchitecture: x86
891+
buildPass: 2
892+
reuseBuildArtifactsFrom:
893+
- AzureLinux_x64_Cross_x64
894+
- AzureLinux_x64_Cross_Alpine_x64
895+
- AzureLinux_x64_Cross_arm64
896+
- AzureLinux_x64_Cross_Alpine_arm64
897+
- AzureLinux_x64_Cross_arm
898+
- AzureLinux_x64_Cross_Alpine_arm
899+
883900
### FINAL JOIN ###
884901
- ${{ if and(parameters.isBuiltFromVmr, not(parameters.isSourceOnlyBuild), ne(variables['Build.Reason'], 'PullRequest')) }}:
885902
- stage: VMR_Final_Join

src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/UpdateNuGetConfigPackageSourcesMappings.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,9 @@ public class UpdateNuGetConfigPackageSourcesMappings : Task
5050
[Required]
5151
public string SourceBuiltSourceNamePrefix { get; set; }
5252

53+
[Required]
54+
public string PreviousBuildPassSourceNamePrefix { get; set; }
55+
5356
public string SbrpCacheSourceName { get; set; }
5457

5558
public string ReferencePackagesSourceName { get; set; }
@@ -255,6 +258,7 @@ private XElement GetPackageMappingsElementForSource(string packageSource)
255258
{
256259
bool isCurrentSourceBuiltSource =
257260
packageSource.StartsWith(SourceBuiltSourceNamePrefix) ||
261+
packageSource.StartsWith(PreviousBuildPassSourceNamePrefix) ||
258262
packageSource.Equals(SbrpCacheSourceName) ||
259263
packageSource.Equals(ReferencePackagesSourceName);
260264

@@ -328,6 +332,10 @@ private void DiscoverPackagesFromAllSourceBuildSources(XElement pkgSourcesElemen
328332
{
329333
AddToDictionary(currentPackages, id, version);
330334
}
335+
else if (packageSource.StartsWith(PreviousBuildPassSourceNamePrefix))
336+
{
337+
AddToDictionary(currentPackages, id, version);
338+
}
331339
else if (packageSource.Equals(ReferencePackagesSourceName))
332340
{
333341
AddToDictionary(referencePackages, id, version);

src/SourceBuild/content/repo-projects/Directory.Build.props

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252

5353
<SbrpCacheNuGetSourceName>source-build-reference-package-cache</SbrpCacheNuGetSourceName>
5454
<SourceBuiltSourceNamePrefix>source-built-</SourceBuiltSourceNamePrefix>
55+
<PreviousBuildPassSourceNamePrefix>previous-build-pass-</PreviousBuildPassSourceNamePrefix>
5556

5657
<!-- Set the bootstrap version to the VMR's version if empty. (no bootstrap set). -->
5758
<ArcadeBootstrapVersion>$([MSBuild]::ValueOrDefault('$(ARCADE_BOOTSTRAP_VERSION)', '$(ArcadeSdkVersion)'))</ArcadeBootstrapVersion>

src/SourceBuild/content/repo-projects/Directory.Build.targets

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,15 @@
117117
</RepositoryReferenceInfo>
118118
</ItemGroup>
119119

120+
<ItemGroup Condition="'$(DotNetBuildPass)' != '' and '$(DotNetBuildPass)' != '1'">
121+
<RepositoryReferenceInfo Include="$(RepositoryName)">
122+
<ShippingSourceName>$(PreviousBuildPassSourceNamePrefix)$(RepositoryName)</ShippingSourceName>
123+
<NonShippingSourceName>$(PreviousBuildPassSourceNamePrefix)transport-$(RepositoryName)</NonShippingSourceName>
124+
<ShippingPackagesPath>$(ArtifactsShippingPackagesDir)/$(RepositoryName)/</ShippingPackagesPath>
125+
<NonShippingPackagesPath>$(ArtifactsNonShippingPackagesDir)/$(RepositoryName)/</NonShippingPackagesPath>
126+
</RepositoryReferenceInfo>
127+
</ItemGroup>
128+
120129
<ItemGroup Condition="'@(RepositoryReferenceInfo)' != ''">
121130
<DependentRepoSourceName Include="@(RepositoryReferenceInfo->'%(ShippingSourceName)')" />
122131
<DependentRepoSourceName Include="@(RepositoryReferenceInfo->'%(NonShippingSourceName)')" />
@@ -236,6 +245,7 @@
236245
PreviouslySourceBuiltSourceName="$(PreviouslySourceBuiltNuGetSourceName)"
237246
PrebuiltSourceName="$(PrebuiltNuGetSourceName)"
238247
SourceBuiltSourceNamePrefix="$(SourceBuiltSourceNamePrefix)"
248+
PreviousBuildPassSourceNamePrefix="$(PreviousBuildPassSourceNamePrefix)"
239249
CustomSources="$(NetSdkSupportingFeedName)" />
240250

241251
<MakeDir Directories="$(BaseIntermediateOutputPath)" />

src/SourceBuild/content/repo-projects/dotnet.proj

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,16 @@
1414
<RepositoryReference Include="sdk" />
1515
</ItemGroup>
1616

17-
<ItemGroup Condition="'$(DotNetBuildPass)' == '2'">
17+
<ItemGroup Condition="'$(DotNetBuildPass)' == '2' and '$(TargetOS)' == 'windows' and '$(TargetArchitecture)' == 'x64'">
18+
<!-- Building Windows Bundle Installers-->
1819
<RepositoryReference Remove="@(RepositoryReference)" />
1920
<RepositoryReference Include="sdk" DotNetBuildPass="2" />
2021
</ItemGroup>
2122

23+
<ItemGroup Condition="'$(DotNetBuildPass)' == '2' and '$(TargetOS)' == 'windows' and '$(TargetArchitecture)' == 'x86'">
24+
<!-- Building the cross-OS DACs -->
25+
<RepositoryReference Remove="@(RepositoryReference)" />
26+
<RepositoryReference Include="runtime" DotNetBuildPass="2" />
27+
</ItemGroup>
28+
2229
</Project>

src/SourceBuild/content/repo-projects/runtime.proj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@
2929

3030
<BuildArgs Condition="'$(UseSystemLibs)' != ''">$(BuildArgs) /p:UseSystemLibs=$(UseSystemLibs)</BuildArgs>
3131

32+
<!-- When we're actually doing signing and the ESRP tool is available, forward down the path to the repo builds. -->
33+
<BuildArgs Condition="'$(Sign)' == 'true' and '$(ForceDryRunSigning)' != 'true' and '$(DotNetEsrpToolPath)' != ''">$(BuildArgs) /p:DotNetEsrpToolPath=$(DotNetEsrpToolPath)</BuildArgs>
34+
3235
<!-- Needed until https://github.com/dotnet/runtime/issues/109329 is fixed. -->
3336
<BuildArgs>$(BuildArgs) /p:NetCoreAppToolCurrentVersion=10.0</BuildArgs>
3437
</PropertyGroup>

src/SourceBuild/content/test/Microsoft.DotNet.Tests/PackageSourceMappingsTests.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public class PackageSourceMappingsTests
2020

2121
private const string NetSdkSupportingFeedName = "net-sdk-supporting-feed";
2222
private const string ArcadeSourceName = "source-built-arcade";
23-
private const string RuntimeSourceName = "source-built-runtime";
23+
private const string RuntimeSourceName = "previous-build-pass-runtime";
2424
private const string PrebuiltSourceName = "prebuilt";
2525
private const string PreviouslySourceBuiltSourceName = "previously-source-built";
2626
private const string ReferencePackagesSourceName = "reference-packages";
@@ -89,6 +89,7 @@ private static void RunTest(string nugetConfigFilename, bool useOnlineFeeds, str
8989
SbrpCacheSourceName = "source-build-reference-package-cache",
9090
SbrpRepoSrcPath = TestSetup.SourceBuildReferencePackagesRepo,
9191
SourceBuiltSourceNamePrefix = "source-built-",
92+
PreviousBuildPassSourceNamePrefix = "previous-build-pass-",
9293
NuGetConfigFile = modifiedNugetConfig,
9394
BuildWithOnlineFeeds = useOnlineFeeds,
9495
SourceBuildSources = sources,

src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/expected/sb-mappings-offline.config

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<configuration>
33
<packageSources>
44
<clear />
5-
<add key="source-built-runtime" value="%runtime%" />
5+
<add key="previous-build-pass-runtime" value="%runtime%" />
66
<add key="source-built-arcade" value="%arcade%" />
77
<add key="reference-packages" value="%reference-packages%" />
88
<add key="previously-source-built" value="%previously-source-built%" />
@@ -25,7 +25,7 @@
2525
-->
2626
<packageSourceMapping>
2727
<clear />
28-
<packageSource key="source-built-runtime">
28+
<packageSource key="previous-build-pass-runtime">
2929
<package pattern="runtime.package1" />
3030
<package pattern="runtime.package2" />
3131
</packageSource>

src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/expected/sb-mappings-online.config

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<configuration>
33
<packageSources>
44
<clear />
5-
<add key="source-built-runtime" value="%runtime%" />
5+
<add key="previous-build-pass-runtime" value="%runtime%" />
66
<add key="source-built-arcade" value="%arcade%" />
77
<add key="reference-packages" value="%reference-packages%" />
88
<add key="previously-source-built" value="%previously-source-built%" />
@@ -38,7 +38,7 @@
3838
-->
3939
<packageSourceMapping>
4040
<clear />
41-
<packageSource key="source-built-runtime">
41+
<packageSource key="previous-build-pass-runtime">
4242
<package pattern="runtime.package1" />
4343
<package pattern="runtime.package2" />
4444
</packageSource>

src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/expected/sb-nomappings-offline.config

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<configuration>
44
<packageSources>
55
<clear />
6-
<add key="source-built-runtime" value="%runtime%" />
6+
<add key="previous-build-pass-runtime" value="%runtime%" />
77
<add key="source-built-arcade" value="%arcade%" />
88
<add key="reference-packages" value="%reference-packages%" />
99
<add key="previously-source-built" value="%previously-source-built%" />
@@ -14,7 +14,7 @@
1414
</disabledPackageSources>
1515
<packageSourceMapping>
1616
<clear />
17-
<packageSource key="source-built-runtime">
17+
<packageSource key="previous-build-pass-runtime">
1818
<package pattern="runtime.package1" />
1919
<package pattern="runtime.package2" />
2020
</packageSource>

src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/expected/sb-nomappings-online.config

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<configuration>
44
<packageSources>
55
<clear />
6-
<add key="source-built-runtime" value="%runtime%" />
6+
<add key="previous-build-pass-runtime" value="%runtime%" />
77
<add key="source-built-arcade" value="%arcade%" />
88
<add key="reference-packages" value="%reference-packages%" />
99
<add key="previously-source-built" value="%previously-source-built%" />
@@ -17,7 +17,7 @@
1717
</disabledPackageSources>
1818
<packageSourceMapping>
1919
<clear />
20-
<packageSource key="source-built-runtime">
20+
<packageSource key="previous-build-pass-runtime">
2121
<package pattern="runtime.package1" />
2222
<package pattern="runtime.package2" />
2323
</packageSource>

src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/expected/ub-mappings.config

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@
33
<packageSources>
44
<clear />
55
<add key="net-sdk-supporting-feed" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet9/nuget/v3/index.json" />
6-
<add key="source-built-runtime" value="%runtime%" />
6+
<add key="previous-build-pass-runtime" value="%runtime%" />
77
<add key="source-built-arcade" value="%arcade%" />
88
<add key="dotnet9" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet9/nuget/v3/index.json" />
99
<add key="dotnet-public" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public/nuget/v3/index.json" />
1010
<add key="vssdk" value="https://pkgs.dev.azure.com/azure-public/vside/_packaging/vssdk/nuget/v3/index.json" />
1111
</packageSources>
1212
<packageSourceMapping>
1313
<clear />
14-
<packageSource key="source-built-runtime">
14+
<packageSource key="previous-build-pass-runtime">
1515
<package pattern="runtime.package1" />
1616
<package pattern="runtime.package2" />
1717
</packageSource>

src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/expected/ub-nomappings.config

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<packageSources>
55
<clear />
66
<add key="net-sdk-supporting-feed" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet9/nuget/v3/index.json" />
7-
<add key="source-built-runtime" value="%runtime%" />
7+
<add key="previous-build-pass-runtime" value="%runtime%" />
88
<add key="source-built-arcade" value="%arcade%" />
99
<add key="dotnet-eng" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json" />
1010
<add key="dotnet9" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet9/nuget/v3/index.json" />
@@ -15,7 +15,7 @@
1515
</disabledPackageSources>
1616
<packageSourceMapping>
1717
<clear />
18-
<packageSource key="source-built-runtime">
18+
<packageSource key="previous-build-pass-runtime">
1919
<package pattern="runtime.package1" />
2020
<package pattern="runtime.package2" />
2121
</packageSource>

src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/original/sb-mappings-offline.config

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<configuration>
33
<packageSources>
44
<clear />
5-
<add key="source-built-runtime" value="%runtime%" />
5+
<add key="previous-build-pass-runtime" value="%runtime%" />
66
<add key="source-built-arcade" value="%arcade%" />
77
<add key="reference-packages" value="%reference-packages%" />
88
<add key="previously-source-built" value="%previously-source-built%" />
@@ -133,4 +133,4 @@
133133
<disabledPackageSources>
134134
<clear />
135135
</disabledPackageSources>
136-
</configuration>
136+
</configuration>

src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/original/sb-mappings-online.config

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<configuration>
33
<packageSources>
44
<clear />
5-
<add key="source-built-runtime" value="%runtime%" />
5+
<add key="previous-build-pass-runtime" value="%runtime%" />
66
<add key="source-built-arcade" value="%arcade%" />
77
<add key="reference-packages" value="%reference-packages%" />
88
<add key="previously-source-built" value="%previously-source-built%" />
@@ -146,4 +146,4 @@
146146
<disabledPackageSources>
147147
<clear />
148148
</disabledPackageSources>
149-
</configuration>
149+
</configuration>

src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/original/sb-nomappings-offline.config

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<configuration>
44
<packageSources>
55
<clear />
6-
<add key="source-built-runtime" value="%runtime%" />
6+
<add key="previous-build-pass-runtime" value="%runtime%" />
77
<add key="source-built-arcade" value="%arcade%" />
88
<add key="reference-packages" value="%reference-packages%" />
99
<add key="previously-source-built" value="%previously-source-built%" />
@@ -12,4 +12,4 @@
1212
<disabledPackageSources>
1313
<clear />
1414
</disabledPackageSources>
15-
</configuration>
15+
</configuration>

src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/original/sb-nomappings-online.config

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<configuration>
44
<packageSources>
55
<clear />
6-
<add key="source-built-runtime" value="%runtime%" />
6+
<add key="previous-build-pass-runtime" value="%runtime%" />
77
<add key="source-built-arcade" value="%arcade%" />
88
<add key="reference-packages" value="%reference-packages%" />
99
<add key="previously-source-built" value="%previously-source-built%" />
@@ -15,4 +15,4 @@
1515
<disabledPackageSources>
1616
<clear />
1717
</disabledPackageSources>
18-
</configuration>
18+
</configuration>

src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/original/ub-mappings.config

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<packageSources>
44
<clear />
55
<add key="net-sdk-supporting-feed" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet9/nuget/v3/index.json" />
6-
<add key="source-built-runtime" value="%runtime%" />
6+
<add key="previous-build-pass-runtime" value="%runtime%" />
77
<add key="source-built-arcade" value="%arcade%" />
88
<add key="dotnet9" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet9/nuget/v3/index.json" />
99
<add key="dotnet-public" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public/nuget/v3/index.json" />
@@ -37,4 +37,4 @@
3737
<disabledPackageSources>
3838
<clear />
3939
</disabledPackageSources>
40-
</configuration>
40+
</configuration>

src/SourceBuild/content/test/Microsoft.DotNet.Tests/assets/PackageSourceMappingsTests/original/ub-nomappings.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<packageSources>
55
<clear />
66
<add key="net-sdk-supporting-feed" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet9/nuget/v3/index.json" />
7-
<add key="source-built-runtime" value="%runtime%" />
7+
<add key="previous-build-pass-runtime" value="%runtime%" />
88
<add key="source-built-arcade" value="%arcade%" />
99
<add key="dotnet-eng" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json" />
1010
<add key="dotnet9" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet9/nuget/v3/index.json" />

0 commit comments

Comments
 (0)