Skip to content

Commit 0cbffc7

Browse files
authored
Introduce PDB artifact kind (#15497)
1 parent 9b99e9a commit 0cbffc7

22 files changed

+776
-653
lines changed

Diff for: Arcade.sln

+37-37
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,12 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DotNet.SwaggerGen
3535
EndProject
3636
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DotNet.GenAPI", "src\Microsoft.DotNet.GenAPI\Microsoft.DotNet.GenAPI.csproj", "{9427265E-C224-4B40-8157-F05529D084D3}"
3737
EndProject
38-
EndProject
3938
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.DotNet.SignCheckLibrary", "src\SignCheck\Microsoft.SignCheck\Microsoft.DotNet.SignCheckLibrary.csproj", "{2A62655C-1AE0-480E-9F1A-E21F21C1D095}"
4039
EndProject
4140
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.DotNet.SignCheck", "src\SignCheck\SignCheck\Microsoft.DotNet.SignCheck.csproj", "{40CB2592-3B06-4D0D-9878-7DFD5C4B3E9E}"
4241
EndProject
4342
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.DotNet.SignCheckTask", "src\SignCheck\SignCheckTask\Microsoft.DotNet.SignCheckTask.csproj", "{F6F5E649-F477-44ED-BAB2-11D4F0E87402}"
43+
EndProject
4444
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WinShimmer", "src\WinShimmer\WinShimmer.csproj", "{39C3FC42-21E8-40BF-AE3F-CB9C4CC226D7}"
4545
EndProject
4646
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DotNet.Build.Tasks.Packaging", "src\Microsoft.DotNet.Build.Tasks.Packaging\src\Microsoft.DotNet.Build.Tasks.Packaging.csproj", "{EFC8C541-1DC4-40DA-B6E5-FBF44F6DD8BC}"
@@ -327,6 +327,42 @@ Global
327327
{9427265E-C224-4B40-8157-F05529D084D3}.Release|x64.Build.0 = Release|Any CPU
328328
{9427265E-C224-4B40-8157-F05529D084D3}.Release|x86.ActiveCfg = Release|Any CPU
329329
{9427265E-C224-4B40-8157-F05529D084D3}.Release|x86.Build.0 = Release|Any CPU
330+
{2A62655C-1AE0-480E-9F1A-E21F21C1D095}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
331+
{2A62655C-1AE0-480E-9F1A-E21F21C1D095}.Debug|Any CPU.Build.0 = Debug|Any CPU
332+
{2A62655C-1AE0-480E-9F1A-E21F21C1D095}.Debug|x64.ActiveCfg = Debug|Any CPU
333+
{2A62655C-1AE0-480E-9F1A-E21F21C1D095}.Debug|x64.Build.0 = Debug|Any CPU
334+
{2A62655C-1AE0-480E-9F1A-E21F21C1D095}.Debug|x86.ActiveCfg = Debug|Any CPU
335+
{2A62655C-1AE0-480E-9F1A-E21F21C1D095}.Debug|x86.Build.0 = Debug|Any CPU
336+
{2A62655C-1AE0-480E-9F1A-E21F21C1D095}.Release|Any CPU.ActiveCfg = Release|Any CPU
337+
{2A62655C-1AE0-480E-9F1A-E21F21C1D095}.Release|Any CPU.Build.0 = Release|Any CPU
338+
{2A62655C-1AE0-480E-9F1A-E21F21C1D095}.Release|x64.ActiveCfg = Release|Any CPU
339+
{2A62655C-1AE0-480E-9F1A-E21F21C1D095}.Release|x64.Build.0 = Release|Any CPU
340+
{2A62655C-1AE0-480E-9F1A-E21F21C1D095}.Release|x86.ActiveCfg = Release|Any CPU
341+
{2A62655C-1AE0-480E-9F1A-E21F21C1D095}.Release|x86.Build.0 = Release|Any CPU
342+
{40CB2592-3B06-4D0D-9878-7DFD5C4B3E9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
343+
{40CB2592-3B06-4D0D-9878-7DFD5C4B3E9E}.Debug|Any CPU.Build.0 = Debug|Any CPU
344+
{40CB2592-3B06-4D0D-9878-7DFD5C4B3E9E}.Debug|x64.ActiveCfg = Debug|Any CPU
345+
{40CB2592-3B06-4D0D-9878-7DFD5C4B3E9E}.Debug|x64.Build.0 = Debug|Any CPU
346+
{40CB2592-3B06-4D0D-9878-7DFD5C4B3E9E}.Debug|x86.ActiveCfg = Debug|Any CPU
347+
{40CB2592-3B06-4D0D-9878-7DFD5C4B3E9E}.Debug|x86.Build.0 = Debug|Any CPU
348+
{40CB2592-3B06-4D0D-9878-7DFD5C4B3E9E}.Release|Any CPU.ActiveCfg = Release|Any CPU
349+
{40CB2592-3B06-4D0D-9878-7DFD5C4B3E9E}.Release|Any CPU.Build.0 = Release|Any CPU
350+
{40CB2592-3B06-4D0D-9878-7DFD5C4B3E9E}.Release|x64.ActiveCfg = Release|Any CPU
351+
{40CB2592-3B06-4D0D-9878-7DFD5C4B3E9E}.Release|x64.Build.0 = Release|Any CPU
352+
{40CB2592-3B06-4D0D-9878-7DFD5C4B3E9E}.Release|x86.ActiveCfg = Release|Any CPU
353+
{40CB2592-3B06-4D0D-9878-7DFD5C4B3E9E}.Release|x86.Build.0 = Release|Any CPU
354+
{F6F5E649-F477-44ED-BAB2-11D4F0E87402}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
355+
{F6F5E649-F477-44ED-BAB2-11D4F0E87402}.Debug|Any CPU.Build.0 = Debug|Any CPU
356+
{F6F5E649-F477-44ED-BAB2-11D4F0E87402}.Debug|x64.ActiveCfg = Debug|Any CPU
357+
{F6F5E649-F477-44ED-BAB2-11D4F0E87402}.Debug|x64.Build.0 = Debug|Any CPU
358+
{F6F5E649-F477-44ED-BAB2-11D4F0E87402}.Debug|x86.ActiveCfg = Debug|Any CPU
359+
{F6F5E649-F477-44ED-BAB2-11D4F0E87402}.Debug|x86.Build.0 = Debug|Any CPU
360+
{F6F5E649-F477-44ED-BAB2-11D4F0E87402}.Release|Any CPU.ActiveCfg = Release|Any CPU
361+
{F6F5E649-F477-44ED-BAB2-11D4F0E87402}.Release|Any CPU.Build.0 = Release|Any CPU
362+
{F6F5E649-F477-44ED-BAB2-11D4F0E87402}.Release|x64.ActiveCfg = Release|Any CPU
363+
{F6F5E649-F477-44ED-BAB2-11D4F0E87402}.Release|x64.Build.0 = Release|Any CPU
364+
{F6F5E649-F477-44ED-BAB2-11D4F0E87402}.Release|x86.ActiveCfg = Release|Any CPU
365+
{F6F5E649-F477-44ED-BAB2-11D4F0E87402}.Release|x86.Build.0 = Release|Any CPU
330366
{39C3FC42-21E8-40BF-AE3F-CB9C4CC226D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
331367
{39C3FC42-21E8-40BF-AE3F-CB9C4CC226D7}.Debug|Any CPU.Build.0 = Debug|Any CPU
332368
{39C3FC42-21E8-40BF-AE3F-CB9C4CC226D7}.Debug|x64.ActiveCfg = Debug|Any CPU
@@ -951,42 +987,6 @@ Global
951987
{1F5118A8-A5C5-4D18-AF34-FFB60FECCD45}.Release|x64.Build.0 = Release|Any CPU
952988
{1F5118A8-A5C5-4D18-AF34-FFB60FECCD45}.Release|x86.ActiveCfg = Release|Any CPU
953989
{1F5118A8-A5C5-4D18-AF34-FFB60FECCD45}.Release|x86.Build.0 = Release|Any CPU
954-
{2A62655C-1AE0-480E-9F1A-E21F21C1D095}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
955-
{2A62655C-1AE0-480E-9F1A-E21F21C1D095}.Debug|Any CPU.Build.0 = Debug|Any CPU
956-
{2A62655C-1AE0-480E-9F1A-E21F21C1D095}.Debug|x64.ActiveCfg = Debug|Any CPU
957-
{2A62655C-1AE0-480E-9F1A-E21F21C1D095}.Debug|x64.Build.0 = Debug|Any CPU
958-
{2A62655C-1AE0-480E-9F1A-E21F21C1D095}.Debug|x86.ActiveCfg = Debug|Any CPU
959-
{2A62655C-1AE0-480E-9F1A-E21F21C1D095}.Debug|x86.Build.0 = Debug|Any CPU
960-
{2A62655C-1AE0-480E-9F1A-E21F21C1D095}.Release|Any CPU.ActiveCfg = Release|Any CPU
961-
{2A62655C-1AE0-480E-9F1A-E21F21C1D095}.Release|Any CPU.Build.0 = Release|Any CPU
962-
{2A62655C-1AE0-480E-9F1A-E21F21C1D095}.Release|x64.ActiveCfg = Release|Any CPU
963-
{2A62655C-1AE0-480E-9F1A-E21F21C1D095}.Release|x64.Build.0 = Release|Any CPU
964-
{2A62655C-1AE0-480E-9F1A-E21F21C1D095}.Release|x86.ActiveCfg = Release|Any CPU
965-
{2A62655C-1AE0-480E-9F1A-E21F21C1D095}.Release|x86.Build.0 = Release|Any CPU
966-
{40CB2592-3B06-4D0D-9878-7DFD5C4B3E9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
967-
{40CB2592-3B06-4D0D-9878-7DFD5C4B3E9E}.Debug|Any CPU.Build.0 = Debug|Any CPU
968-
{40CB2592-3B06-4D0D-9878-7DFD5C4B3E9E}.Debug|x64.ActiveCfg = Debug|Any CPU
969-
{40CB2592-3B06-4D0D-9878-7DFD5C4B3E9E}.Debug|x64.Build.0 = Debug|Any CPU
970-
{40CB2592-3B06-4D0D-9878-7DFD5C4B3E9E}.Debug|x86.ActiveCfg = Debug|Any CPU
971-
{40CB2592-3B06-4D0D-9878-7DFD5C4B3E9E}.Debug|x86.Build.0 = Debug|Any CPU
972-
{40CB2592-3B06-4D0D-9878-7DFD5C4B3E9E}.Release|Any CPU.ActiveCfg = Release|Any CPU
973-
{40CB2592-3B06-4D0D-9878-7DFD5C4B3E9E}.Release|Any CPU.Build.0 = Release|Any CPU
974-
{40CB2592-3B06-4D0D-9878-7DFD5C4B3E9E}.Release|x64.ActiveCfg = Release|Any CPU
975-
{40CB2592-3B06-4D0D-9878-7DFD5C4B3E9E}.Release|x64.Build.0 = Release|Any CPU
976-
{40CB2592-3B06-4D0D-9878-7DFD5C4B3E9E}.Release|x86.ActiveCfg = Release|Any CPU
977-
{40CB2592-3B06-4D0D-9878-7DFD5C4B3E9E}.Release|x86.Build.0 = Release|Any CPU
978-
{F6F5E649-F477-44ED-BAB2-11D4F0E87402}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
979-
{F6F5E649-F477-44ED-BAB2-11D4F0E87402}.Debug|Any CPU.Build.0 = Debug|Any CPU
980-
{F6F5E649-F477-44ED-BAB2-11D4F0E87402}.Debug|x64.ActiveCfg = Debug|Any CPU
981-
{F6F5E649-F477-44ED-BAB2-11D4F0E87402}.Debug|x64.Build.0 = Debug|Any CPU
982-
{F6F5E649-F477-44ED-BAB2-11D4F0E87402}.Debug|x86.ActiveCfg = Debug|Any CPU
983-
{F6F5E649-F477-44ED-BAB2-11D4F0E87402}.Debug|x86.Build.0 = Debug|Any CPU
984-
{F6F5E649-F477-44ED-BAB2-11D4F0E87402}.Release|Any CPU.ActiveCfg = Release|Any CPU
985-
{F6F5E649-F477-44ED-BAB2-11D4F0E87402}.Release|Any CPU.Build.0 = Release|Any CPU
986-
{F6F5E649-F477-44ED-BAB2-11D4F0E87402}.Release|x64.ActiveCfg = Release|Any CPU
987-
{F6F5E649-F477-44ED-BAB2-11D4F0E87402}.Release|x64.Build.0 = Release|Any CPU
988-
{F6F5E649-F477-44ED-BAB2-11D4F0E87402}.Release|x86.ActiveCfg = Release|Any CPU
989-
{F6F5E649-F477-44ED-BAB2-11D4F0E87402}.Release|x86.Build.0 = Release|Any CPU
990990
EndGlobalSection
991991
GlobalSection(SolutionProperties) = preSolution
992992
HideSolutionNode = FALSE

Diff for: src/Microsoft.DotNet.Arcade.Sdk/tools/Publish.proj

+25-32
Original file line numberDiff line numberDiff line change
@@ -120,13 +120,33 @@
120120
<_ExistingSymbolPackage Include="@(Artifact)" Condition="'$(DotNetBuildSourceOnly)' != 'true' and '%(Artifact.SkipPublish)' != 'true' and $([System.String]::Copy('%(Filename)%(Extension)').EndsWith('.symbols.nupkg'))">
121121
<!-- Update the kind of the symbol packages to blob -->
122122
<Kind>Blob</Kind>
123+
<RelativeBlobPath>assets/symbols/%(Filename)%(Extension)</RelativeBlobPath>
123124
</_ExistingSymbolPackage>
124125
<_PackageToPublish Include="@(Artifact)" Exclude="@(_ExistingSymbolPackage)" Condition="'%(Artifact.SkipPublish)' != 'true' and '%(Extension)' == '.nupkg'" />
125126
</ItemGroup>
126127

127128
<ItemGroup>
128129
<ItemsToPushToBlobFeed Include="@(_PackageToPublish);@(_ExistingSymbolPackage)" Exclude="@(ItemsToPushToBlobFeed)" />
129130
</ItemGroup>
131+
132+
<!--
133+
Publish Windows PDBs produced by SymStore.targets (by default, only shipping PDBs are placed there).
134+
SymbolUploader doesn't support embedded PDBs yet, so let SymStore.targets do the conversion for now.
135+
https://github.com/dotnet/symstore/issues/143
136+
-->
137+
<ItemGroup>
138+
<FilesToPublishToSymbolServer Include="$(ArtifactsSymStoreDirectory)**\*.pdb"/>
139+
140+
<!-- Support existing uses of FilesToPublishToSymbolServer by translating this ItemGroup into ItemsToPushToBlobFeed,
141+
with type PDB. Repositories can also add these items manually if desired.
142+
Note that we are careful here to include the relative paths of those PDBs. Unlike most artifacts
143+
that we deal with, many PDBs can have the same name but different contents. -->
144+
<_SymbolsToPushToBlobFeed Include="@(FilesToPublishToSymbolServer)">
145+
<Kind>PDB</Kind>
146+
<RelativePDBPath>%(RecursiveDir)%(Filename)%(Extension)</RelativePDBPath>
147+
</_SymbolsToPushToBlobFeed>
148+
<ItemsToPushToBlobFeed Include="@(_SymbolsToPushToBlobFeed)" />
149+
</ItemGroup>
130150
</Target>
131151

132152
<Target Name="AutoGenerateSymbolPackages" DependsOnTargets="BeforePublish" Condition="'$(AutoGenerateSymbolPackages)' == 'true'">
@@ -145,6 +165,7 @@
145165
<OriginalPackage>%(_PackageToPublish.Identity)</OriginalPackage>
146166
<IsShipping>%(_PackageToPublish.IsShipping)</IsShipping>
147167
<Kind>Blob</Kind>
168+
<RelativeBlobPath>assets/symbols/%(Filename)%(Extension)</RelativeBlobPath>
148169
</_SymbolPackageToGenerate>
149170
</ItemGroup>
150171

@@ -213,12 +234,15 @@
213234

214235
<!-- Directory where pdbs pointed in `FilesToPublishToSymbolServer` are copied before publishing to AzDO artifacts. -->
215236
<PDBsToPublishTempLocation>$(ArtifactsTmpDir)PDBsToPublish/</PDBsToPublishTempLocation>
237+
<PdbArtifactsSourceBuiltOrTempDir Condition="'$(PushToLocalStorage)' == 'true'">$(SourceBuiltPdbArtifactsDir)</PdbArtifactsSourceBuiltOrTempDir>
238+
<PdbArtifactsSourceBuiltOrTempDir Condition="'$(PushToLocalStorage)' != 'true'">$(PDBsToPublishTempLocation)</PdbArtifactsSourceBuiltOrTempDir>
216239

217240
<!-- Use the SYSTEM_PHASENAME variable when available as that is guaranteed to be a unique identifier.
218241
For local scenarios and when the variable isn't available, use "<os>-<arch>-<buildpass>"" as the manifest name. -->
219242
<AssetManifestFileName Condition="'$(AssetManifestFileName)' == '' and '$(SYSTEM_PHASENAME)' != ''">$(SYSTEM_PHASENAME).xml</AssetManifestFileName>
220243
<AssetManifestFileName Condition="'$(AssetManifestFileName)' == ''">$(AssetManifestOS)-$(AssetManifestArch)$(AssetManifestPass).xml</AssetManifestFileName>
221244
<AssetManifestFilePath Condition="'$(AssetManifestFilePath)' == ''">$(ArtifactsLogDir)AssetManifest\$(AssetManifestFileName)</AssetManifestFilePath>
245+
222246
</PropertyGroup>
223247

224248
<!--
@@ -299,40 +323,9 @@
299323
ShippingPackagesLocalStorageDir="$(SourceBuiltShippingPackagesDir)"
300324
NonShippingPackagesLocalStorageDir="$(SourceBuiltNonShippingPackagesDir)"
301325
AssetManifestsLocalStorageDir="$(SourceBuiltAssetManifestsDir)"
326+
PdbArtifactsLocalStorageDir="$(PdbArtifactsSourceBuiltOrTempDir)"
302327
ArtifactVisibilitiesToPublish="@(ArtifactVisibilityToPublish)"
303328
UseHardlinksIfPossible="$(PublishingUseHardlinksIfPossible)" />
304-
305-
<!--
306-
Publish Windows PDBs produced by SymStore.targets (by default, only shipping PDBs are placed there).
307-
SymbolUploader doesn't support embedded PDBs yet, so let SymStore.targets do the conversion for now.
308-
https://github.com/dotnet/symstore/issues/143
309-
-->
310-
<ItemGroup>
311-
<FilesToPublishToSymbolServer Include="$(ArtifactsSymStoreDirectory)**\*.pdb"/>
312-
</ItemGroup>
313-
314-
<!--
315-
The below lines comprise workarounds for two issues:
316-
- AzDO logging commands don't let us add subfolders by executing different `##vso` commands:
317-
https://github.com/microsoft/azure-pipelines-tasks/issues/11689 . Therefore a parent folder
318-
containing all desired subfolders is published. The primary goal of these artifacts isn't
319-
to be browsable by humans. The target that publish the symbols will filter and publish only
320-
the PDB files.
321-
322-
- It's possible that the user have PDBs outside the Arcade.SDK standard folder
323-
(artifacts/SymStore/$Configuration) and we need to maintain that support. For that reason,
324-
and the one mentioned above, we copy all files in `FilesToPublishToSymbolServer` to a temporary
325-
folder before adding them to the AzDO artifact container.
326-
-->
327-
<Copy
328-
SourceFiles="@(FilesToPublishToSymbolServer)"
329-
DestinationFiles="@(FilesToPublishToSymbolServer->'$(PDBsToPublishTempLocation)%(RecursiveDir)%(Filename)%(Extension)')"
330-
/>
331-
332-
<Message
333-
Text="##vso[artifact.upload containerfolder=PdbArtifacts;artifactname=PdbArtifacts]$(PDBsToPublishTempLocation)"
334-
Importance="high"
335-
Condition="'@(FilesToPublishToSymbolServer)' != ''"/>
336329
</Target>
337330

338331
<Target Name="PublishSymbols"

Diff for: src/Microsoft.DotNet.Arcade.Sdk/tools/Sign.props

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
<ItemDefinitionGroup>
1111
<Artifact>
1212
<PublishFlatContainer>true</PublishFlatContainer>
13-
<!-- Possible values: Blob, Package -->
13+
<!-- Possible values: Blob, Package, PDB -->
1414
<!-- Currently unset, indicating that a repo hasn't started using this property. If it's set, then it
1515
wins over PublishFlatContaner. If it is not set, then PublishFlatContainer wins.
1616
After existing usage of PublishFlatContainer is no longer around, set to "Blob" -->

0 commit comments

Comments
 (0)