Perform symbol publication using Microsoft.SymbolUploader.Build.Task (#10358)

- aspnet/AspNetCore-Internal#2126
- allow release pipeline to publish symbols on all builds: #10113
- add new project that publishes symbols to MSDL and SymWeb
  - release pipeline prepares then restores and builds the new project
  - expire symbols after 10 years (or so)

nits:
- add `$env:DOTNET_SKIP_FIRST_TIME_EXPERIENCE` to ci.yml
This commit is contained in:
Doug Bunting 2019-05-23 22:14:40 -07:00 committed by GitHub
parent 2c70498c13
commit 3bb9cda189
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 67 additions and 0 deletions

View File

@ -17,6 +17,10 @@ pr:
include: include:
- '*' - '*'
variables:
- name: DOTNET_SKIP_FIRST_TIME_EXPERIENCE
value: true
jobs: jobs:
- template: jobs/default-build.yml - template: jobs/default-build.yml
parameters: parameters:

62
eng/PublishSymbols.proj Normal file
View File

@ -0,0 +1,62 @@
<Project Sdk="Microsoft.NET.Sdk" DefaultTargets="RunPublishSymbols">
<PropertyGroup>
<!-- TFM doesn't matter. These settings are required to make NuGet happy so we can restore required MSBuild packages. -->
<TargetFramework>netcoreapp3.0</TargetFramework>
<DisableImplicitFrameworkReferences>true</DisableImplicitFrameworkReferences>
<ManifestsPath>artifacts\manifests\</ManifestsPath>
<DisablePackageReferenceRestrictions>true</DisablePackageReferenceRestrictions>
<!-- Expire symbols after 10 years (or so) by default. -->
<DotNetSymbolExpirationInDays Condition="'$(DotNetSymbolExpirationInDays)' == ''">3650</DotNetSymbolExpirationInDays>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.SymbolUploader.Build.Task" Version="$(MicrosoftSymbolUploaderBuildTaskPackageVersion)" />
</ItemGroup>
<!--
Initially copied from
https://github.com/dotnet/core-setup/blob/19390ee14c2824c39db393aff75a95788ececebf/publish/publish.proj#L242-L286
-->
<Target Name="RunPublishSymbols">
<ItemGroup>
<SymbolServerConfig
Include="MSDL (public symbols server)"
Url="https://microsoftpublicsymbols.artifacts.visualstudio.com/DefaultCollection"
Pat="$(MicrosoftSymbolServerPAT)" />
<SymbolServerConfig
Include="SymWeb (internal symbols server)"
Url="https://microsoft.artifacts.visualstudio.com/DefaultCollection"
Pat="$(SymwebSymbolServerPAT)" />
</ItemGroup>
<Error
Condition="'%(SymbolServerConfig.Pat)' == ''"
Text="Missing symbol server publish PAT for '%(SymbolServerConfig.Identity)'" />
<!-- Could also set SymbolDryRun, SymbolExpirationInDays or SymbolVerboseLogging. -->
<ItemGroup>
<SymbolServerPublishProject
Include="$(MSBuildProjectFullPath)"
AdditionalProperties="
SymbolServerDescription=%(SymbolServerConfig.Identity);
SymbolServerPath=%(SymbolServerConfig.Url);
SymbolServerPAT=%(SymbolServerConfig.Pat)" />
</ItemGroup>
<!-- Note: Can't run in parallel. Symbol publish opens the zips exclusively. -->
<MSBuild
Projects="@(SymbolServerPublishProject)"
Targets="SetupPublishSymbols;PublishSymbols"
Properties="SymbolDirectory=$(SymbolDirectory)" />
</Target>
<Target Name="SetupPublishSymbols">
<ItemGroup>
<SymbolPackagesToPublish Include="$(SymbolDirectory)/**/*.symbols.nupkg" />
</ItemGroup>
<Message Importance="High" Text="Publishing symbol packages to '$(SymbolServerDescription)':%0A @(SymbolPackagesToPublish, '%0A ')"/>
</Target>
</Project>

View File

@ -140,6 +140,7 @@
<MicrosoftNETTestSdkPackageVersion>15.9.0</MicrosoftNETTestSdkPackageVersion> <MicrosoftNETTestSdkPackageVersion>15.9.0</MicrosoftNETTestSdkPackageVersion>
<MicrosoftSourceLinkGitHubPackageVersion>1.0.0-beta2-18618-05</MicrosoftSourceLinkGitHubPackageVersion> <MicrosoftSourceLinkGitHubPackageVersion>1.0.0-beta2-18618-05</MicrosoftSourceLinkGitHubPackageVersion>
<MicrosoftSourceLinkVstsGitPackageVersion>1.0.0-beta2-18618-05</MicrosoftSourceLinkVstsGitPackageVersion> <MicrosoftSourceLinkVstsGitPackageVersion>1.0.0-beta2-18618-05</MicrosoftSourceLinkVstsGitPackageVersion>
<MicrosoftSymbolUploaderBuildTaskPackageVersion>1.0.0-beta-64023-03</MicrosoftSymbolUploaderBuildTaskPackageVersion>
<!-- Stable dotnet/corefx packages no longer updated for .NET Core 3 --> <!-- Stable dotnet/corefx packages no longer updated for .NET Core 3 -->
<SystemBuffersPackageVersion>4.5.0</SystemBuffersPackageVersion> <SystemBuffersPackageVersion>4.5.0</SystemBuffersPackageVersion>
<SystemCodeDomPackageVersion>4.4.0</SystemCodeDomPackageVersion> <SystemCodeDomPackageVersion>4.4.0</SystemCodeDomPackageVersion>