|
| 1 | +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 |
| 2 | +From: Nikola Milosavljevic < [email protected]> |
| 3 | +Date: Wed, 3 Apr 2024 21:23:27 +0000 |
| 4 | +Subject: [PATCH] Copy repo symbols to intermediates |
| 5 | + |
| 6 | +Backport: https://github.com/dotnet/arcade/pull/14681 |
| 7 | +--- |
| 8 | + .../tools/Publish.proj | 8 ----- |
| 9 | + .../tools/SourceBuild/AfterSourceBuild.proj | 2 +- |
| 10 | + .../SourceBuild/SourceBuildArcade.targets | 35 +++++++++++++++---- |
| 11 | + 3 files changed, 29 insertions(+), 16 deletions(-) |
| 12 | + |
| 13 | +diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/Publish.proj b/src/Microsoft.DotNet.Arcade.Sdk/tools/Publish.proj |
| 14 | +index 43fadc322..bec1a4963 100644 |
| 15 | +--- a/src/Microsoft.DotNet.Arcade.Sdk/tools/Publish.proj |
| 16 | ++++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/Publish.proj |
| 17 | +@@ -118,14 +118,6 @@ |
| 18 | + <ItemsToSignPostBuild Include="@(SymbolPackagesToGenerate->'%(Filename)%(Extension)')" Condition="'$(PostBuildSign)' == 'true'" /> |
| 19 | + </ItemGroup> |
| 20 | + |
| 21 | +- <!-- Include Symbols.<repo>.tar.gz, if running in inner source-only build --> |
| 22 | +- <ItemGroup Condition="'$(DotNetBuildSourceOnly)' == 'true' and '$(DotNetBuildInnerRepo)' == 'true'"> |
| 23 | +- <UnifiedSymbolsPackage Include="$(ArtifactsNonShippingPackagesDir)Symbols.*.tar.gz" /> |
| 24 | +- <Artifact Include="@(UnifiedSymbolsPackage)" |
| 25 | +- RelativeBlobPath="Symbols/%(Filename)%(Extension)" |
| 26 | +- IsShipping="false" /> |
| 27 | +- </ItemGroup> |
| 28 | +- |
| 29 | + <!-- |
| 30 | + If a symbol package doesn't exist yet we assume that the regular package contains Portable PDBs. |
| 31 | + Such packages can act as symbol packages since they have the same structure. |
| 32 | +diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/SourceBuild/AfterSourceBuild.proj b/src/Microsoft.DotNet.Arcade.Sdk/tools/SourceBuild/AfterSourceBuild.proj |
| 33 | +index c2ba0644b..6a1fd449d 100644 |
| 34 | +--- a/src/Microsoft.DotNet.Arcade.Sdk/tools/SourceBuild/AfterSourceBuild.proj |
| 35 | ++++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/SourceBuild/AfterSourceBuild.proj |
| 36 | +@@ -14,7 +14,7 @@ |
| 37 | + <Target Name="AfterSourceBuildInnerBuild" |
| 38 | + Condition="('$(ArcadeInnerBuildFromSource)' == 'true' or '$(DotNetBuildInnerRepo)' == 'true') and |
| 39 | + '$(DotNetBuildOrchestrator)' == 'true'" |
| 40 | +- DependsOnTargets="CreateRepoSymbolsArchive;ClearPreviousSBRP" /> |
| 41 | ++ DependsOnTargets="CopyRepoSymbolsToIntermediates;ClearPreviousSBRP" /> |
| 42 | + |
| 43 | + <Target Name="ClearPreviousSBRP" |
| 44 | + Condition="'$(GitHubRepositoryName)' == 'source-build-reference-packages'"> |
| 45 | +diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/SourceBuild/SourceBuildArcade.targets b/src/Microsoft.DotNet.Arcade.Sdk/tools/SourceBuild/SourceBuildArcade.targets |
| 46 | +index 41817c3a9..f06d33095 100644 |
| 47 | +--- a/src/Microsoft.DotNet.Arcade.Sdk/tools/SourceBuild/SourceBuildArcade.targets |
| 48 | ++++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/SourceBuild/SourceBuildArcade.targets |
| 49 | +@@ -159,20 +159,20 @@ |
| 50 | + |
| 51 | + Conditioning out for Windows as the tar execution below doesn't work cross-plat. |
| 52 | + --> |
| 53 | ++ |
| 54 | + <Target Name="CreateRepoSymbolsArchive" |
| 55 | ++ Condition="'$(OS)' != 'Windows_NT' and ('$(DotNetBuildFromSourceFlavor)' == 'Product' or '$(DotNetBuildOrchestrator)' == 'true' or '$(SupplementalIntermediateNupkgCategory)' == '$(SymbolsIntermediateNupkgCategory)')" |
| 56 | ++ DependsOnTargets="$(CreateRepoSymbolsArchiveDependsOn); |
| 57 | ++ DiscoverRepoSymbols; |
| 58 | ++ PackageRepoSymbols"/> |
| 59 | ++ |
| 60 | ++ <Target Name="DiscoverRepoSymbols" |
| 61 | + Condition="'$(OS)' != 'Windows_NT' and ('$(DotNetBuildFromSourceFlavor)' == 'Product' or '$(DotNetBuildOrchestrator)' == 'true' or '$(SupplementalIntermediateNupkgCategory)' == '$(SymbolsIntermediateNupkgCategory)')" |
| 62 | + DependsOnTargets="$(CreateRepoSymbolsArchiveDependsOn)"> |
| 63 | + <PropertyGroup> |
| 64 | + <SymbolsRoot>$(CurrentRepoSourceBuildArtifactsDir)</SymbolsRoot> |
| 65 | + <!-- Fall back to repo root for source-build-externals or repos that don't have the regular SymbolsRoot as defined above --> |
| 66 | + <SymbolsRoot Condition="!Exists('$(SymbolsRoot)') or '$(GitHubRepositoryName)' == 'source-build-externals'">$(RepoRoot)</SymbolsRoot> |
| 67 | +- <SymbolsArchiveLocation>$(CurrentRepoSourceBuildArtifactsNonShippingPackagesDir)</SymbolsArchiveLocation> |
| 68 | +- <SymbolsArchiveLocation Condition="'$(GitHubRepositoryName)' == 'nuget-client' and '$(PackageOutputPath)' != ''">$([MSBuild]::EnsureTrailingSlash('$(PackageOutputPath)'))</SymbolsArchiveLocation> |
| 69 | +- <SymbolsList>$([MSBuild]::NormalizePath('$(SymbolsArchiveLocation)', 'symbols.lst'))</SymbolsList> |
| 70 | +- <SymbolsArchivePrefix>Symbols.</SymbolsArchivePrefix> |
| 71 | +- <!-- $(Version) and $(TargetRid) are only available when target is executed as part of intermediate package creation. --> |
| 72 | +- <SymbolsArchiveSuffix Condition="'$(CreateIntermediatePackage)' == 'true'">.$(Version).$(TargetRid)</SymbolsArchiveSuffix> |
| 73 | +- <SymbolsArchiveFile>$(SymbolsArchiveLocation)$(SymbolsArchivePrefix)$(GitHubRepositoryName)$(SymbolsArchiveSuffix)$(ArchiveExtension)</SymbolsArchiveFile> |
| 74 | + </PropertyGroup> |
| 75 | + |
| 76 | + <ItemGroup> |
| 77 | +@@ -181,6 +181,20 @@ |
| 78 | + <RelativePath>$([MSBuild]::MakeRelative($(SymbolsRoot), %(FullPath)))</RelativePath> |
| 79 | + </AbsoluteSymbolPath> |
| 80 | + </ItemGroup> |
| 81 | ++ </Target> |
| 82 | ++ |
| 83 | ++ <Target Name="PackageRepoSymbols" |
| 84 | ++ Condition="'$(OS)' != 'Windows_NT' and ('$(DotNetBuildFromSourceFlavor)' == 'Product' or '$(DotNetBuildOrchestrator)' == 'true' or '$(SupplementalIntermediateNupkgCategory)' == '$(SymbolsIntermediateNupkgCategory)')" |
| 85 | ++ DependsOnTargets="$(CreateRepoSymbolsArchiveDependsOn);DiscoverRepoSymbols"> |
| 86 | ++ <PropertyGroup> |
| 87 | ++ <SymbolsArchiveLocation>$(CurrentRepoSourceBuildArtifactsNonShippingPackagesDir)</SymbolsArchiveLocation> |
| 88 | ++ <SymbolsArchiveLocation Condition="'$(GitHubRepositoryName)' == 'nuget-client' and '$(PackageOutputPath)' != ''">$([MSBuild]::EnsureTrailingSlash('$(PackageOutputPath)'))</SymbolsArchiveLocation> |
| 89 | ++ <SymbolsList>$([MSBuild]::NormalizePath('$(SymbolsArchiveLocation)', 'symbols.lst'))</SymbolsList> |
| 90 | ++ <SymbolsArchivePrefix>Symbols.</SymbolsArchivePrefix> |
| 91 | ++ <!-- $(Version) and $(TargetRid) are only available when target is executed as part of intermediate package creation. --> |
| 92 | ++ <SymbolsArchiveSuffix Condition="'$(CreateIntermediatePackage)' == 'true'">.$(Version).$(TargetRid)</SymbolsArchiveSuffix> |
| 93 | ++ <SymbolsArchiveFile>$(SymbolsArchiveLocation)$(SymbolsArchivePrefix)$(GitHubRepositoryName)$(SymbolsArchiveSuffix)$(ArchiveExtension)</SymbolsArchiveFile> |
| 94 | ++ </PropertyGroup> |
| 95 | + |
| 96 | + <WriteLinesToFile |
| 97 | + File="$(SymbolsList)" |
| 98 | +@@ -203,6 +217,13 @@ |
| 99 | + <Delete Files="$(SymbolsList)" Condition="Exists($(SymbolsList))" /> |
| 100 | + </Target> |
| 101 | + |
| 102 | ++ <Target Name="CopyRepoSymbolsToIntermediates" |
| 103 | ++ DependsOnTargets="DiscoverRepoSymbols"> |
| 104 | ++ <MakeDir Directories="$(SourceBuiltSymbolsDir)" /> |
| 105 | ++ <Copy |
| 106 | ++ SourceFiles="@(AbsoluteSymbolPath)" |
| 107 | ++ DestinationFolder="$(SourceBuiltSymbolsDir)%(RecursiveDir)" /> |
| 108 | ++ </Target> |
| 109 | + <!-- |
| 110 | + This target can be removed once we enable standard repo assets manifests and SB orchestrator |
| 111 | + starts using it - https://github.com/dotnet/source-build/issues/3970 |
0 commit comments