diff --git a/eng/publishing/v3/publish-assets.yml b/eng/publishing/v3/publish-assets.yml index bdb0fe9e462..589ce5c5a1e 100644 --- a/eng/publishing/v3/publish-assets.yml +++ b/eng/publishing/v3/publish-assets.yml @@ -102,6 +102,8 @@ jobs: /p:AzureDevOpsOrg='$(AzDOAccount)' /p:AzureProject='$(AzDOProjectName)' /p:UseStreamingPublishing='true' + /p:StreamingPublishingMaxClients=16 + /p:NonStreamingPublishingMaxClients=12 - template: /eng/common/templates/steps/publish-logs.yml parameters: StageLabel: '${{ parameters.stageName }}' diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/SdkTasks/PublishArtifactsInManifest.proj b/src/Microsoft.DotNet.Arcade.Sdk/tools/SdkTasks/PublishArtifactsInManifest.proj index fa4778f6aea..6aea96bc2a2 100644 --- a/src/Microsoft.DotNet.Arcade.Sdk/tools/SdkTasks/PublishArtifactsInManifest.proj +++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/SdkTasks/PublishArtifactsInManifest.proj @@ -109,6 +109,8 @@ false false $(BlobBasePath) + 12 + 16 - + UseStreamingPublishing="$(UseStreamingPublishing)" + StreamingPublishingMaxClients="$(StreamingPublishingMaxClients)" + NonStreamingPublishingMaxClients="$(NonStreamingPublishingMaxClients)"/> diff --git a/src/Microsoft.DotNet.Build.Tasks.Feed/src/PublishArtifactsInManifest.cs b/src/Microsoft.DotNet.Build.Tasks.Feed/src/PublishArtifactsInManifest.cs index 0cdbd667c59..753ed3262cf 100644 --- a/src/Microsoft.DotNet.Build.Tasks.Feed/src/PublishArtifactsInManifest.cs +++ b/src/Microsoft.DotNet.Build.Tasks.Feed/src/PublishArtifactsInManifest.cs @@ -196,6 +196,10 @@ public string BuildQuality /// public bool UseStreamingPublishing { get; set; } = false; + public int StreamingPublishingMaxClients {get; set;} + + public int NonStreamingPublishingMaxClients {get; set;} + /// /// Just an internal flag to keep track whether we published assets via a V3 manifest or not. /// @@ -389,7 +393,9 @@ internal PublishArtifactsInManifestBase ConstructPublishingV3Task(BuildModel bui BuildId = this.BuildId, AzureProject = this.AzureProject, AzureDevOpsOrg = this.AzureDevOpsOrg, - UseStreamingPublishing = this.UseStreamingPublishing + UseStreamingPublishing = this.UseStreamingPublishing, + StreamingPublishingMaxClients = this.StreamingPublishingMaxClients, + NonStreamingPublishingMaxClients = this.NonStreamingPublishingMaxClients }; } } diff --git a/src/Microsoft.DotNet.Build.Tasks.Feed/src/PublishArtifactsInManifestBase.cs b/src/Microsoft.DotNet.Build.Tasks.Feed/src/PublishArtifactsInManifestBase.cs index c336a196ed9..ddbbadb383a 100644 --- a/src/Microsoft.DotNet.Build.Tasks.Feed/src/PublishArtifactsInManifestBase.cs +++ b/src/Microsoft.DotNet.Build.Tasks.Feed/src/PublishArtifactsInManifestBase.cs @@ -69,9 +69,13 @@ public abstract class PublishArtifactsInManifestBase : Microsoft.Build.Utilities /// [Required] public string NugetPath { get; set; } - - private const int StreamingPublishingMaxClients = 16; - private const int NonStreamingPublishingMaxClients = 12; + + /// + /// We are setting StreamingPublishingMaxClients=16 and NonStreamingPublishingMaxClients=12 through publish-asset.yml as we were hitting OOM issue + /// https://github.com/dotnet/core-eng/issues/13098 for more details. + /// + public int StreamingPublishingMaxClients {get; set;} + public int NonStreamingPublishingMaxClients {get; set;} /// /// Maximum number of parallel uploads for the upload tasks.