Blob Blame History Raw
From 7365824ddc6ed66152cfc50f4c8508368953099c Mon Sep 17 00:00:00 2001
From: Omair Majid <omajid@redhat.com>
Date: Tue, 9 Nov 2021 08:39:27 -0500
Subject: [PATCH] Also publish non-portable RID runtime symbols tarball

This fixes a regression in .NET 6 source-build compared to the .NET
5 source-build.

source-build wants to publish runtime symbols tarball for portable (eg,
linux-x64) and non-portable (eg, fedora.33-x64) RIDs here after a build.
Following .NET 5 conventions, I expected to see:

    ./artifacts/x64/Release/runtime/dotnet-runtime-symbols-fedora.34-x64-6.0.0.tar.gz
    ./artifacts/x64/Release/runtime/dotnet-runtime-symbols-linux-x64-6.0.0.tar.gz

Unfortunately, only the portable RID (linux-x64) tarball is present
after a full source-build in .NET 6.

It turns out this is a bug in our build scripts. We try and copy
binaries - including the symbol tarballs - after building each of
runtime-portable and runtime. However, the target dependency is wrong:
after `Build`, the intermediate package doesn't exist from the
just-built repo.

What ends up happening is that nothing is copied after building
runtime-portable. However, after building runtime, the runtime-portable
intermediate artifacts are found and copied over. So the end
build has portable RID symbos, but not the non-portable ones.

Fix that by changing the dependency of this target so it runs after
intermediate packages are available.
---
 src/SourceBuild/tarball/content/repos/runtime.common.targets | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/SourceBuild/tarball/content/repos/runtime.common.targets b/src/SourceBuild/tarball/content/repos/runtime.common.targets
index ca606b23d21..862b70dc832 100644
--- a/src/SourceBuild/tarball/content/repos/runtime.common.targets
+++ b/src/SourceBuild/tarball/content/repos/runtime.common.targets
@@ -23,7 +23,7 @@
   </Target>
 
   <Target Name="CopyBinariesToBinFolder"
-          AfterTargets="Build"
+          AfterTargets="ExtractIntermediatePackages"
           Inputs="$(MSBuildProjectFullPath)"
           Outputs="$(RepoCompletedSemaphorePath)CopyBinariesToBinFolder.complete">
     <ItemGroup>