Publish artifacts and symbols one file at a time#7086
Publish artifacts and symbols one file at a time#7086epananth merged 39 commits intodotnet:mainfrom epananth:publishing-pr
Conversation
|
Ran some tests Runtime Latest build -> https://dnceng.visualstudio.com/internal/_build/results?buildId=1040969&view=results Other promotion builds dotnet-winforms - |
|
More test results from day before https://dnceng.visualstudio.com/internal/_build/results?buildId=1039004&view=logs&j=ba23343f-f710-5af9-782d-5bd26b102304&t=6e277ba4-1c1e-552d-b96f-db0aeb4be20a - 20 m 48 seconds this download with the new hosted pool took 31 minutes https://dnceng.visualstudio.com/internal/_build/results?buildId=1038957&view=logs&j=ba23343f-f710-5af9-782d-5bd26b102304&t=cecdd0ae-1666-570d-4521-d44005725bca, compared to the whole thing taking https://dev.azure.com/dnceng/internal/_build/results?buildId=1039004&view=logs&j=ba23343f-f710-5af9-782d-5bd26b102304&t=6e277ba4-1c1e-552d-b96f-db0aeb4be20a 20 m 48 seconds.. |
|
I ran tests for different promotions parallelly, and they all succeeded. I have also added retry logic for downloading files. So I think I covered most of the tests, we had discussed. |
riarenas
left a comment
There was a problem hiding this comment.
First round of feedback. Still need to finish looking at all the files.
src/Microsoft.DotNet.Build.Tasks.Feed/src/PublishArtifactsInManifestBase.cs
Outdated
Show resolved
Hide resolved
src/Microsoft.DotNet.Build.Tasks.Feed/src/PublishArtifactsInManifestBase.cs
Outdated
Show resolved
Hide resolved
src/Microsoft.DotNet.Build.Tasks.Feed/src/PublishArtifactsInManifestBase.cs
Outdated
Show resolved
Hide resolved
src/Microsoft.DotNet.Build.Tasks.Feed/src/PublishArtifactsInManifestBase.cs
Outdated
Show resolved
Hide resolved
src/Microsoft.DotNet.Build.Tasks.Feed/src/PublishArtifactsInManifestBase.cs
Show resolved
Hide resolved
src/Microsoft.DotNet.Build.Tasks.Feed/src/PublishArtifactsInManifestBase.cs
Outdated
Show resolved
Hide resolved
src/Microsoft.DotNet.Build.Tasks.Feed/src/PublishArtifactsInManifestBase.cs
Outdated
Show resolved
Hide resolved
src/Microsoft.DotNet.Build.Tasks.Feed/src/PublishArtifactsInManifestBase.cs
Show resolved
Hide resolved
src/Microsoft.DotNet.Build.Tasks.Feed/src/PublishArtifactsInManifestBase.cs
Outdated
Show resolved
Hide resolved
src/Microsoft.DotNet.Build.Tasks.Feed/src/PublishArtifactsInManifestBase.cs
Outdated
Show resolved
Hide resolved
riarenas
left a comment
There was a problem hiding this comment.
Second pass. Two files to go
src/Microsoft.DotNet.Build.Tasks.Feed/src/PublishArtifactsInManifestBase.cs
Outdated
Show resolved
Hide resolved
src/Microsoft.DotNet.Build.Tasks.Feed/src/PublishArtifactsInManifestBase.cs
Outdated
Show resolved
Hide resolved
src/Microsoft.DotNet.Build.Tasks.Feed/src/PublishArtifactsInManifestBase.cs
Outdated
Show resolved
Hide resolved
src/Microsoft.DotNet.Build.Tasks.Feed/src/PublishArtifactsInManifestBase.cs
Outdated
Show resolved
Hide resolved
src/Microsoft.DotNet.Build.Tasks.Feed/src/PublishArtifactsInManifestBase.cs
Outdated
Show resolved
Hide resolved
src/Microsoft.DotNet.Build.Tasks.Feed/src/PublishArtifactsInManifestBase.cs
Show resolved
Hide resolved
src/Microsoft.DotNet.Build.Tasks.Feed/src/PublishArtifactsInManifestBase.cs
Outdated
Show resolved
Hide resolved
src/Microsoft.DotNet.Build.Tasks.Feed/src/PublishArtifactsInManifestBase.cs
Outdated
Show resolved
Hide resolved
src/Microsoft.DotNet.Build.Tasks.Feed/src/PublishArtifactsInManifestBase.cs
Outdated
Show resolved
Hide resolved
src/Microsoft.DotNet.Build.Tasks.Feed/src/PublishArtifactsInManifestBase.cs
Outdated
Show resolved
Hide resolved
src/Microsoft.DotNet.Build.Tasks.Feed/src/PublishArtifactsInManifestBase.cs
Outdated
Show resolved
Hide resolved
src/Microsoft.DotNet.Build.Tasks.Feed/src/PublishArtifactsInManifestBase.cs
Show resolved
Hide resolved
riarenas
left a comment
There was a problem hiding this comment.
I only have a couple more nits and comments but provided you have some test builds with these latest changes that we can take a look at, this LGTM,
| /// </summary> | ||
| /// <param name="client">Azdo client</param> | ||
| /// <param name="artifact">If it is PackageArtifacts or BlobArtifacts</param> | ||
| /// <param name="ArtifactName">If it is PackageArtifacts or BlobArtifacts</param> |
There was a problem hiding this comment.
Nit: the parameter name is artifactName (casing)
|
|
||
| } | ||
|
|
||
| private async Task PublishPackagesToAzureStorageNugetByDownloadingEntireFolderAsync(HashSet<PackageArtifactModel> packagesToPublish, |
mmitche
left a comment
There was a problem hiding this comment.
LGTM. Thanks for iterating on this. Complicated stuff.
michellemcdaniel
left a comment
There was a problem hiding this comment.
I'm happy with how it looks in the staging pipeline (the only failures make sense/are because the files had already been uploaded since we tried on a bar id that already has been published). LGTM
|
Latest test against runtime
|
|
I did some test against installer and I am currently facing some IO exception, used by another process for blob publishing. I am investigating this issue, so I am not going to merge this PR till that issue is fixed. |
|
In the last change, I added the following
|
|
@mmitche mentioned my change is good to merge. :) |
|
Installer build first time - https://dev.azure.com/dnceng/internal/_build/results?buildId=1079093&view=logs&j=ba23343f-f710-5af9-782d-5bd26b102304&t=6e277ba4-1c1e-552d-b96f-db0aeb4be20a did delete-build-from-channel and retried build - https://dev.azure.com/dnceng/internal/_build/results?buildId=1078127&view=results |
* Improve publishing performance
To double check:
Issue -> #6987
Both the old functionality to download the entire artifact folder is still present and can be turned on by enabling the artifact download task and switching UseStreamingPublishing= false in the publish-assets.yml
There is definitely some redundant code, I'm hoping code review will help me make it better.
NOTE : PdbArtifacts are still downloaded like we did earlier, cos there is not way to get the file names before hand to download them from PdbArtifacts directory.