From 4fcabc47cc78dcbb669210f3bd3e78f5b019c790 Mon Sep 17 00:00:00 2001 From: Eric Mellino Date: Tue, 15 Mar 2016 17:01:50 -0700 Subject: [PATCH 1/2] Create combined zip/tar for framework-host-sdk and framework-host --- scripts/dotnet-cli-build/PackageTargets.cs | 42 ++++++++++++++++++++-- scripts/dotnet-cli-build/PrepareTargets.cs | 2 ++ scripts/dotnet-cli-build/Utils/Utils.cs | 10 ++++++ 3 files changed, 52 insertions(+), 2 deletions(-) diff --git a/scripts/dotnet-cli-build/PackageTargets.cs b/scripts/dotnet-cli-build/PackageTargets.cs index fdce6eedd..0284a5dc6 100644 --- a/scripts/dotnet-cli-build/PackageTargets.cs +++ b/scripts/dotnet-cli-build/PackageTargets.cs @@ -14,7 +14,9 @@ namespace Microsoft.DotNet.Cli.Build { [Target(nameof(PackageTargets.CopyCLISDKLayout), nameof(SharedFrameworkTargets.PublishSharedHost), - nameof(SharedFrameworkTargets.PublishSharedFramework))] + nameof(SharedFrameworkTargets.PublishSharedFramework), + nameof(PackageTargets.CopyCombinedFrameworkSDKHostLayout), + nameof(PackageTargets.CopyCombinedFrameworkHostLayout))] public static BuildTargetResult InitPackage(BuildTargetContext c) { Directory.CreateDirectory(Dirs.Packages); @@ -90,6 +92,39 @@ namespace Microsoft.DotNet.Cli.Build return c.Success(); } + [Target] + public static BuildTargetResult CopyCombinedFrameworkSDKHostLayout(BuildTargetContext c) + { + var combinedRoot = Path.Combine(Dirs.Output, "obj", "combined-framework-sdk-host"); + + string sdkPublishRoot = c.BuildContext.Get("CLISDKRoot"); + Utils.CopyDirectoryRecursively(sdkPublishRoot, combinedRoot); + + string sharedFrameworkPublishRoot = c.BuildContext.Get("SharedFrameworkPublishRoot"); + Utils.CopyDirectoryRecursively(sharedFrameworkPublishRoot, combinedRoot); + + string sharedHostPublishRoot = c.BuildContext.Get("SharedHostPublishRoot"); + Utils.CopyDirectoryRecursively(sharedHostPublishRoot, combinedRoot); + + c.BuildContext["CombinedFrameworkSDKHostRoot"] = combinedRoot; + return c.Success(); + } + + [Target] + public static BuildTargetResult CopyCombinedFrameworkHostLayout(BuildTargetContext c) + { + var combinedRoot = Path.Combine(Dirs.Output, "obj", "combined-framework-host"); + + string sharedFrameworkPublishRoot = c.BuildContext.Get("SharedFrameworkPublishRoot"); + Utils.CopyDirectoryRecursively(sharedFrameworkPublishRoot, combinedRoot); + + string sharedHostPublishRoot = c.BuildContext.Get("SharedHostPublishRoot"); + Utils.CopyDirectoryRecursively(sharedHostPublishRoot, combinedRoot); + + c.BuildContext["CombinedFrameworkHostRoot"] = combinedRoot; + return c.Success(); + } + [Target(nameof(PackageTargets.GenerateZip), nameof(PackageTargets.GenerateTarBall))] public static BuildTargetResult GenerateCompressedFile(BuildTargetContext c) { @@ -103,6 +138,8 @@ namespace Microsoft.DotNet.Cli.Build CreateZipFromDirectory(c.BuildContext.Get("SharedHostPublishRoot"), c.BuildContext.Get("SharedHostCompressedFile")); CreateZipFromDirectory(c.BuildContext.Get("SharedFrameworkPublishRoot"), c.BuildContext.Get("SharedFrameworkCompressedFile")); CreateZipFromDirectory(c.BuildContext.Get("CLISDKRoot"), c.BuildContext.Get("SdkCompressedFile")); + CreateZipFromDirectory(c.BuildContext.Get("CombinedFrameworkSDKHostRoot"), c.BuildContext.Get("CombinedFrameworkSDKHostCompressedFile")); + CreateZipFromDirectory(c.BuildContext.Get("CombinedFrameworkHostRoot"), c.BuildContext.Get("CombinedFrameworkHostCompressedFile")); return c.Success(); } @@ -113,7 +150,8 @@ namespace Microsoft.DotNet.Cli.Build { CreateTarBallFromDirectory(c.BuildContext.Get("SharedHostPublishRoot"), c.BuildContext.Get("SharedHostCompressedFile")); CreateTarBallFromDirectory(c.BuildContext.Get("SharedFrameworkPublishRoot"), c.BuildContext.Get("SharedFrameworkCompressedFile")); - CreateTarBallFromDirectory(c.BuildContext.Get("CLISDKRoot"), c.BuildContext.Get("SdkCompressedFile")); + CreateTarBallFromDirectory(c.BuildContext.Get("CombinedFrameworkSDKHostRoot"), c.BuildContext.Get("CombinedFrameworkSDKHostCompressedFile")); + CreateTarBallFromDirectory(c.BuildContext.Get("CombinedFrameworkHostRoot"), c.BuildContext.Get("CombinedFrameworkHostCompressedFile")); return c.Success(); } diff --git a/scripts/dotnet-cli-build/PrepareTargets.cs b/scripts/dotnet-cli-build/PrepareTargets.cs index 1c87e132f..0dcfa1538 100644 --- a/scripts/dotnet-cli-build/PrepareTargets.cs +++ b/scripts/dotnet-cli-build/PrepareTargets.cs @@ -115,6 +115,8 @@ namespace Microsoft.DotNet.Cli.Build AddInstallerArtifactToContext(c, "dotnet", "Sdk"); AddInstallerArtifactToContext(c, "dotnet-host", "SharedHost"); AddInstallerArtifactToContext(c, "dotnet-sharedframework", "SharedFramework"); + AddInstallerArtifactToContext(c, "dotnet-combined-framework-sdk-host", "CombinedFrameworkSDKHost"); + AddInstallerArtifactToContext(c, "dotnet-combined-framework-host", "CombinedFrameworkHost"); return c.Success(); } diff --git a/scripts/dotnet-cli-build/Utils/Utils.cs b/scripts/dotnet-cli-build/Utils/Utils.cs index 1f255e99e..d9dd937a0 100644 --- a/scripts/dotnet-cli-build/Utils/Utils.cs +++ b/scripts/dotnet-cli-build/Utils/Utils.cs @@ -100,5 +100,15 @@ namespace Microsoft.DotNet.Cli.Build Directory.Delete(path, true); } } + + public static void CopyDirectoryRecursively(string path, string destination) + { + foreach (var file in Directory.GetFiles(path, "*", SearchOption.AllDirectories)) + { + string destFile = file.Replace(path, destination); + Directory.CreateDirectory(Path.GetDirectoryName(destFile)); + File.Copy(file, destFile, true); + } + } } } From d9dfaf1328ad94474d529df15373664fef322936 Mon Sep 17 00:00:00 2001 From: Eric Mellino Date: Tue, 15 Mar 2016 17:41:42 -0700 Subject: [PATCH 2/2] Publish the combined-zip/tar files to azure --- scripts/dotnet-cli-build/PublishTargets.cs | 28 ++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/scripts/dotnet-cli-build/PublishTargets.cs b/scripts/dotnet-cli-build/PublishTargets.cs index b624656ad..04af2b35c 100644 --- a/scripts/dotnet-cli-build/PublishTargets.cs +++ b/scripts/dotnet-cli-build/PublishTargets.cs @@ -49,6 +49,8 @@ namespace Microsoft.DotNet.Cli.Build nameof(PublishTargets.PublishDebFileToDebianRepo), nameof(PublishTargets.PublishSharedFrameworkCompressedFile), nameof(PublishTargets.PublishSharedHostCompressedFile), + nameof(PublishTargets.PublishCombinedFrameworkSDKHostFile), + nameof(PublishTargets.PublishCombinedFrameworkHostFile), nameof(PublishTargets.PublishLatestVersionTextFile))] public static BuildTargetResult PublishArtifacts(BuildTargetContext c) { @@ -169,6 +171,32 @@ namespace Microsoft.DotNet.Cli.Build return c.Success(); } + [Target] + public static BuildTargetResult PublishCombinedFrameworkSDKHostFile(BuildTargetContext c) + { + var compressedFile = c.BuildContext.Get("CombinedFrameworkSDKHostCompressedFile"); + var compressedFileBlob = $"{Channel}/Binaries/{Version}/{Path.GetFileName(compressedFile)}"; + var latestCompressedFile = compressedFile.Replace(Version, "latest"); + var latestCompressedFileBlob = $"{Channel}/Binaries/Latest/{Path.GetFileName(latestCompressedFile)}"; + + PublishFileAzure(compressedFileBlob, compressedFile); + PublishFileAzure(latestCompressedFileBlob, compressedFile); + return c.Success(); + } + + [Target] + public static BuildTargetResult PublishCombinedFrameworkHostFile(BuildTargetContext c) + { + var compressedFile = c.BuildContext.Get("CombinedFrameworkHostCompressedFile"); + var compressedFileBlob = $"{Channel}/Binaries/{Version}/{Path.GetFileName(compressedFile)}"; + var latestCompressedFile = compressedFile.Replace(Version, "latest"); + var latestCompressedFileBlob = $"{Channel}/Binaries/Latest/{Path.GetFileName(latestCompressedFile)}"; + + PublishFileAzure(compressedFileBlob, compressedFile); + PublishFileAzure(latestCompressedFileBlob, compressedFile); + return c.Success(); + } + private static BuildTargetResult PublishFile(BuildTargetContext c, string file) { var env = PackageTargets.GetCommonEnvVars(c);