Add PullNupkgFilesFromBlob target

This target pulls all the nupkgs from the matching azure storage
and then copies them into the artifact\$(RID)\packages folder.
This commit is contained in:
Wes Haggard 2016-04-07 17:25:37 -07:00
parent b9d6a0c911
commit d7376f84c3
2 changed files with 30 additions and 0 deletions

View file

@ -322,5 +322,16 @@ namespace Microsoft.DotNet.Cli.Build
}
return c.Success();
}
[Target(nameof(PrepareTargets.Init), nameof(InitPublish))]
public static BuildTargetResult PullNupkgFilesFromBlob(BuildTargetContext c)
{
var hostBlob = $"{Channel}/Binaries/{CliNuGetVersion}/";
Directory.CreateDirectory(Dirs.Packages);
AzurePublisherTool.DownloadFiles(hostBlob, ".nupkg", Dirs.Packages);
return c.Success();
}
}
}

View file

@ -1,5 +1,6 @@
using System;
using System.IO;
using System.Linq;
using System.Net.Http;
using System.Text;
using Microsoft.DotNet.Cli.Build.Framework;
@ -92,5 +93,23 @@ namespace Microsoft.DotNet.Cli.Build
{
return $"{channel}/Binaries/{version}/{Path.GetFileName(archiveFile)}";
}
public async void DownloadFiles(string blobVirtualDirectory, string fileExtension, string downloadPath)
{
CloudBlobDirectory blobDir = _blobContainer.GetDirectoryReference(blobVirtualDirectory);
BlobContinuationToken continuationToken = new BlobContinuationToken();
var blobFiles = blobDir.ListBlobsSegmentedAsync(continuationToken).Result;
foreach (var blobFile in blobFiles.Results.OfType<CloudBlockBlob>())
{
if (Path.GetExtension(blobFile.Uri.AbsoluteUri) == fileExtension)
{
string localBlobFile = Path.Combine(downloadPath, Path.GetFileName(blobFile.Uri.AbsoluteUri));
Console.WriteLine($"Downloading {blobFile.Uri.AbsoluteUri} to {localBlobFile}...");
blobFile.DownloadToFileAsync(localBlobFile, FileMode.Create).Wait();
}
}
}
}
}