Merge branch 'release' into dev

This commit is contained in:
Wei Wang 2015-01-23 11:48:18 -08:00
commit 6b0c2bb01f
5 changed files with 29 additions and 33 deletions

View File

@ -6,7 +6,7 @@
"node_modules", "node_modules",
"grunt" "grunt"
], ],
"packExclude": [ "bundleExclude": [
"bower.json", "bower.json",
"package.json", "package.json",
"gruntfile.js", "gruntfile.js",

View File

@ -9,7 +9,7 @@
"**/*.cs", "**/*.cs",
"../../test/E2ETests/compiler/shared/**/*.cs" // This code is for testing only. "../../test/E2ETests/compiler/shared/**/*.cs" // This code is for testing only.
], ],
"packExclude": "*.cmd", "bundleExclude": "*.cmd",
"webroot": "wwwroot", "webroot": "wwwroot",
"dependencies": { "dependencies": {
"EntityFramework.SqlServer": "7.0.0-*", "EntityFramework.SqlServer": "7.0.0-*",

View File

@ -81,8 +81,8 @@ namespace E2ETests
} }
else else
{ {
// Cannot override with environment in case of IIS. Pack and write a Microsoft.AspNet.Hosting.ini file. // Cannot override with environment in case of IIS. Bundle and write a Microsoft.AspNet.Hosting.ini file.
startParameters.PackApplicationBeforeStart = true; startParameters.BundleApplicationBeforeStart = true;
} }
} }
@ -98,13 +98,13 @@ namespace E2ETests
startParameters.Dotnet = SwitchPathToDotnetFlavor(startParameters.DotnetFlavor, startParameters.DotnetArchitecture, logger); startParameters.Dotnet = SwitchPathToDotnetFlavor(startParameters.DotnetFlavor, startParameters.DotnetArchitecture, logger);
//Reason to do pack here instead of in a common place is use the right Dotnet to do the packing. Previous line switches to use the right Dotnet. //Reason to do pack here instead of in a common place is use the right Dotnet to do the packing. Previous line switches to use the right Dotnet.
if (startParameters.PackApplicationBeforeStart) if (startParameters.BundleApplicationBeforeStart)
{ {
if (startParameters.ServerType == ServerType.IISNativeModule || if (startParameters.ServerType == ServerType.IISNativeModule ||
startParameters.ServerType == ServerType.IIS) startParameters.ServerType == ServerType.IIS)
{ {
// Pack to IIS root\application folder. // Bundle to IIS root\application folder.
KpmPack(startParameters, logger, Path.Combine(Environment.GetEnvironmentVariable("SystemDrive") + @"\", @"inetpub\wwwroot")); KpmBundle(startParameters, logger, Path.Combine(Environment.GetEnvironmentVariable("SystemDrive") + @"\", @"inetpub\wwwroot"));
// Drop a Microsoft.AspNet.Hosting.ini with ASPNET_ENV information. // Drop a Microsoft.AspNet.Hosting.ini with ASPNET_ENV information.
logger.WriteInformation("Creating Microsoft.AspNet.Hosting.ini file with ASPNET_ENV."); logger.WriteInformation("Creating Microsoft.AspNet.Hosting.ini file with ASPNET_ENV.");
@ -142,7 +142,7 @@ namespace E2ETests
} }
else else
{ {
KpmPack(startParameters, logger); KpmBundle(startParameters, logger);
} }
} }
@ -179,28 +179,26 @@ namespace E2ETests
throw new Exception("Dotnet not detected on the machine."); throw new Exception("Dotnet not detected on the machine.");
} }
if (startParameters.PackApplicationBeforeStart) if (startParameters.BundleApplicationBeforeStart)
{ {
// We use full path to Dotnet to pack. // We use full path to Dotnet to pack.
startParameters.Dotnet = new DirectoryInfo(dotnetBin).Parent.FullName; startParameters.Dotnet = new DirectoryInfo(dotnetBin).Parent.FullName;
KpmPack(startParameters, logger); KpmBundle(startParameters, logger);
} }
//Mono does not have a way to pass in a --appbase switch. So it will be an environment variable. //Mono now supports --appbase
Environment.SetEnvironmentVariable("DOTNET_APPBASE", startParameters.ApplicationPath); Environment.SetEnvironmentVariable("DOTNET_APPBASE", startParameters.ApplicationPath);
logger.WriteInformation("Setting the DOTNET_APPBASE to {0}", startParameters.ApplicationPath); logger.WriteInformation("Setting the --appbase to", startParameters.ApplicationPath);
var monoPath = "mono"; var dotnet = "dotnet";
var dotnetMonoManaged = Path.Combine(dotnetBin, "dotnet.mono.managed.dll");
var applicationHost = Path.Combine(dotnetBin, "Microsoft.Framework.ApplicationHost");
var commandName = startParameters.ServerType == ServerType.Kestrel ? "kestrel" : string.Empty; var commandName = startParameters.ServerType == ServerType.Kestrel ? "kestrel" : string.Empty;
logger.WriteInformation(string.Format("Executing command: {0} {1} {2} {3}", monoPath, dotnetMonoManaged, applicationHost, commandName)); logger.WriteInformation(string.Format("Executing command: {0} {1} {2}", dotnet, startParameters.ApplicationPath, commandName));
var startInfo = new ProcessStartInfo var startInfo = new ProcessStartInfo
{ {
FileName = monoPath, FileName = dotnet,
Arguments = string.Format("{0} {1} {2}", dotnetMonoManaged, applicationHost, commandName), Arguments = string.Format("{0} {1}", startParameters.ApplicationPath, commandName),
UseShellExecute = false, UseShellExecute = false,
CreateNoWindow = true, CreateNoWindow = true,
RedirectStandardInput = true RedirectStandardInput = true
@ -210,8 +208,6 @@ namespace E2ETests
logger.WriteInformation("Started {0}. Process Id : {1}", hostProcess.MainModule.FileName, hostProcess.Id); logger.WriteInformation("Started {0}. Process Id : {1}", hostProcess.MainModule.FileName, hostProcess.Id);
Thread.Sleep(25 * 1000); Thread.Sleep(25 * 1000);
//Clear the appbase so that it does not create issues with successive runs
Environment.SetEnvironmentVariable("DOTNET_APPBASE", string.Empty);
return hostProcess; return hostProcess;
} }
@ -321,11 +317,11 @@ namespace E2ETests
return dotnetName; return dotnetName;
} }
private static void KpmPack(StartParameters startParameters, ILogger logger, string packRoot = null) private static void KpmBundle(StartParameters startParameters, ILogger logger, string bundleRoot = null)
{ {
startParameters.PackedApplicationRootPath = Path.Combine(packRoot ?? Path.GetTempPath(), Guid.NewGuid().ToString()); startParameters.BundledApplicationRootPath = Path.Combine(bundleRoot ?? Path.GetTempPath(), Guid.NewGuid().ToString());
var parameters = string.Format("pack {0} -o {1} --runtime {2}", startParameters.ApplicationPath, startParameters.PackedApplicationRootPath, startParameters.Dotnet); var parameters = string.Format("bundle {0} -o {1} --runtime {2}", startParameters.ApplicationPath, startParameters.BundledApplicationRootPath, startParameters.Dotnet);
logger.WriteInformation("Executing command kpm {0}", parameters); logger.WriteInformation("Executing command kpm {0}", parameters);
var startInfo = new ProcessStartInfo var startInfo = new ProcessStartInfo
@ -343,10 +339,10 @@ namespace E2ETests
(startParameters.ServerType == ServerType.IISExpress || (startParameters.ServerType == ServerType.IISExpress ||
startParameters.ServerType == ServerType.IISNativeModule || startParameters.ServerType == ServerType.IISNativeModule ||
startParameters.ServerType == ServerType.IIS) ? startParameters.ServerType == ServerType.IIS) ?
Path.Combine(startParameters.PackedApplicationRootPath, "wwwroot") : Path.Combine(startParameters.BundledApplicationRootPath, "wwwroot") :
Path.Combine(startParameters.PackedApplicationRootPath, "approot", "src", "MusicStore"); Path.Combine(startParameters.BundledApplicationRootPath, "approot", "src", "MusicStore");
logger.WriteInformation("kpm pack finished with exit code : {0}", hostProcess.ExitCode); logger.WriteInformation("kpm bundle finished with exit code : {0}", hostProcess.ExitCode);
} }
//In case of self-host application activation happens immediately unlike iis where activation happens on first request. //In case of self-host application activation happens immediately unlike iis where activation happens on first request.
@ -446,12 +442,12 @@ namespace E2ETests
} }
} }
if (startParameters.PackApplicationBeforeStart) if (startParameters.BundleApplicationBeforeStart)
{ {
try try
{ {
//We've originally packed the application in a temp folder. We need to delete it. //We've originally bundled the application in a temp folder. We need to delete it.
Directory.Delete(startParameters.PackedApplicationRootPath, true); Directory.Delete(startParameters.BundledApplicationRootPath, true);
} }
catch (Exception exception) catch (Exception exception)
{ {

View File

@ -21,9 +21,9 @@
public string ApplicationPath { get; set; } public string ApplicationPath { get; set; }
public bool PackApplicationBeforeStart { get; set; } public bool BundleApplicationBeforeStart { get; set; }
public string PackedApplicationRootPath { get; set; } public string BundledApplicationRootPath { get; set; }
public string Dotnet { get; set; } public string Dotnet { get; set; }

View File

@ -48,7 +48,7 @@ namespace E2ETests
ServerType = serverType, ServerType = serverType,
DotnetFlavor = dotnetFlavor, DotnetFlavor = dotnetFlavor,
DotnetArchitecture = architecture, DotnetArchitecture = architecture,
PackApplicationBeforeStart = true BundleApplicationBeforeStart = true
}; };
var testStartTime = DateTime.Now; var testStartTime = DateTime.Now;
@ -95,7 +95,7 @@ namespace E2ETests
{ {
if (Directory.GetFiles(_startParameters.ApplicationPath, "*.cmd", SearchOption.TopDirectoryOnly).Length > 0) if (Directory.GetFiles(_startParameters.ApplicationPath, "*.cmd", SearchOption.TopDirectoryOnly).Length > 0)
{ {
throw new Exception("packExclude parameter values are not honored."); throw new Exception("bundleExclude parameter values are not honored.");
} }
} }