Skip to content

Commit 1912d9f

Browse files
authored
Allow PushToBuildStorage to only push the asset manifest (#15639)
1 parent 6c1093b commit 1912d9f

File tree

4 files changed

+50
-264
lines changed

4 files changed

+50
-264
lines changed

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

+3-1
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@
8787
('$(DotNetBuildSourceOnly)' != 'true' or ('$(DotNetBuildInnerRepo)' == 'true' and '$(DotNetBuildOrchestrator)' != 'true'))">true</AutoGenerateSymbolPackages>
8888

8989
<PreserveRepoOrigin Condition="'$(PreserveRepoOrigin)' == ''">false</PreserveRepoOrigin>
90+
<PublishManifestOnly Condition="'$(PublishManifestOnly)' == ''">false</PublishManifestOnly>
9091

9192
<!-- This tracks the dependent targets of PublishToAzureDevOpsArtifacts. We can't rename this
9293
property as it is used by other repositories already. -->
@@ -373,7 +374,8 @@
373374
AssetManifestsLocalStorageDir="$(SourceBuiltAssetManifestsDir)"
374375
PdbArtifactsLocalStorageDir="$(PdbArtifactsSourceBuiltOrTempDir)"
375376
ArtifactVisibilitiesToPublish="@(ArtifactVisibilityToPublish)"
376-
UseHardlinksIfPossible="$(PublishingUseHardlinksIfPossible)" />
377+
UseHardlinksIfPossible="$(PublishingUseHardlinksIfPossible)"
378+
PublishManifestOnly="$(PublishManifestOnly)" />
377379
</Target>
378380

379381
<!-- Import the publish targets when in the inner or outer repo builds. -->

Diff for: src/Microsoft.DotNet.Build.Tasks.Feed.Tests/GenerateBuildManifestTests.cs

-73
This file was deleted.

Diff for: src/Microsoft.DotNet.Build.Tasks.Feed/src/GenerateBuildManifest.cs

-158
This file was deleted.

Diff for: src/Microsoft.DotNet.Build.Tasks.Feed/src/PushToBuildStorage.cs

+47-32
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,9 @@ public class PushToBuildStorage : MSBuildTaskBase
102102
/// </summary>
103103
public bool PreserveRepoOrigin { get; set; }
104104

105+
/// <summary>
106+
/// The visibility of the artifacts to put in the manifest.
107+
/// </summary>
105108
public ITaskItem[] ArtifactVisibilitiesToPublish { get; set; }
106109

107110
/// <summary>
@@ -116,6 +119,8 @@ public class PushToBuildStorage : MSBuildTaskBase
116119
/// </summary>
117120
public bool UseHardlinksIfPossible { get; set; } = true;
118121

122+
public bool PublishManifestOnly { get; set; } = false;
123+
119124
public override void ConfigureServices(IServiceCollection collection)
120125
{
121126
collection.TryAddSingleton<IBlobArtifactModelFactory, BlobArtifactModelFactory>();
@@ -138,12 +143,19 @@ public bool ExecuteTask(IFileSystem fileSystem,
138143
{
139144
if (PushToLocalStorage)
140145
{
141-
if (string.IsNullOrEmpty(AssetsLocalStorageDir) ||
142-
string.IsNullOrEmpty(ShippingPackagesLocalStorageDir) ||
143-
string.IsNullOrEmpty(NonShippingPackagesLocalStorageDir) ||
144-
string.IsNullOrEmpty(AssetManifestsLocalStorageDir))
146+
if (!PublishManifestOnly)
147+
{
148+
if (string.IsNullOrEmpty(AssetsLocalStorageDir) ||
149+
string.IsNullOrEmpty(ShippingPackagesLocalStorageDir) ||
150+
string.IsNullOrEmpty(NonShippingPackagesLocalStorageDir) ||
151+
string.IsNullOrEmpty(PdbArtifactsLocalStorageDir))
152+
{
153+
throw new Exception($"AssetsLocalStorageDir, ShippingPackagesLocalStorageDir, NonShippingPackagesLocalStorageDir and PdbArtifactsLocalStorageDir need to be specified if PublishToLocalStorage is set to true");
154+
}
155+
}
156+
if (string.IsNullOrEmpty(AssetManifestsLocalStorageDir))
145157
{
146-
throw new Exception($"AssetsLocalStorageDir, ShippingPackagesLocalStorageDir, NonShippingPackagesLocalStorageDir and AssetManifestsLocalStorageDir need to be specified if PublishToLocalStorage is set to true");
158+
throw new Exception($"AssetManifestsLocalStorageDir needs to be specified if PublishToLocalStorage is set to true");
147159
}
148160

149161
Log.LogMessage(MessageImportance.High, "Performing push to local artifacts storage.");
@@ -195,43 +207,46 @@ public bool ExecuteTask(IFileSystem fileSystem,
195207
throw new Exception($"PdbArtifactsLocalStorageDir must be specified.");
196208
}
197209

198-
foreach (var package in buildModel.Artifacts.Packages)
210+
if (!PublishManifestOnly)
199211
{
200-
if (!fileSystem.FileExists(package.OriginalFile))
212+
foreach (var package in buildModel.Artifacts.Packages)
201213
{
202-
Log.LogError($"Could not find file {package.OriginalFile}.");
203-
continue;
204-
}
214+
if (!fileSystem.FileExists(package.OriginalFile))
215+
{
216+
Log.LogError($"Could not find file {package.OriginalFile}.");
217+
continue;
218+
}
205219

206-
PushToLocalStorageOrAzDO(package);
207-
}
220+
PushToLocalStorageOrAzDO(package);
221+
}
208222

209-
foreach (var blobArtifact in buildModel.Artifacts.Blobs)
210-
{
211-
if (!fileSystem.FileExists(blobArtifact.OriginalFile))
223+
foreach (var blobArtifact in buildModel.Artifacts.Blobs)
212224
{
213-
Log.LogError($"Could not find file {blobArtifact.OriginalFile}.");
214-
continue;
215-
}
225+
if (!fileSystem.FileExists(blobArtifact.OriginalFile))
226+
{
227+
Log.LogError($"Could not find file {blobArtifact.OriginalFile}.");
228+
continue;
229+
}
216230

217-
PushToLocalStorageOrAzDO(blobArtifact);
218-
}
231+
PushToLocalStorageOrAzDO(blobArtifact);
232+
}
219233

220-
foreach (var pdbArtifact in buildModel.Artifacts.Pdbs)
221-
{
222-
if (!fileSystem.FileExists(pdbArtifact.OriginalFile))
234+
foreach (var pdbArtifact in buildModel.Artifacts.Pdbs)
223235
{
224-
Log.LogError($"Could not find file {pdbArtifact.OriginalFile}.");
225-
continue;
236+
if (!fileSystem.FileExists(pdbArtifact.OriginalFile))
237+
{
238+
Log.LogError($"Could not find file {pdbArtifact.OriginalFile}.");
239+
continue;
240+
}
241+
PushToLocalStorageOrAzDO(pdbArtifact);
226242
}
227-
PushToLocalStorageOrAzDO(pdbArtifact);
228-
}
229243

230-
if (!PushToLocalStorage && buildModel.Artifacts.Pdbs.Any())
231-
{
232-
// Upload the full set of PDBs
233-
Log.LogMessage(MessageImportance.High,
234-
$"##vso[artifact.upload containerfolder=PdbArtifacts;artifactname=PdbArtifacts]{PdbArtifactsLocalStorageDir}");
244+
if (!PushToLocalStorage && buildModel.Artifacts.Pdbs.Any())
245+
{
246+
// Upload the full set of PDBs
247+
Log.LogMessage(MessageImportance.High,
248+
$"##vso[artifact.upload containerfolder=PdbArtifacts;artifactname=PdbArtifacts]{PdbArtifactsLocalStorageDir}");
249+
}
235250
}
236251

237252
// Write the manifest, then create an artifact for it.

0 commit comments

Comments
 (0)