in src/Cli/func/Helpers/ZipHelper.cs [15:57]
public static async Task<Stream> GetAppZipFile(string functionAppRoot, bool buildNativeDeps, BuildOption buildOption, bool noBuild, GitIgnoreParser ignoreParser = null, string additionalPackages = null, bool ignoreDotNetCheck = false)
{
var gitIgnorePath = Path.Combine(functionAppRoot, Constants.FuncIgnoreFile);
if (ignoreParser == null && FileSystemHelpers.FileExists(gitIgnorePath))
{
ignoreParser = new GitIgnoreParser(await FileSystemHelpers.ReadAllTextFromFileAsync(gitIgnorePath));
}
if (noBuild)
{
ColoredConsole.WriteLine(DarkYellow("Skipping build event for functions project (--no-build)."));
}
else if (buildOption == BuildOption.Remote)
{
ColoredConsole.WriteLine(DarkYellow("Performing remote build for functions project."));
}
else if (buildOption == BuildOption.Local)
{
ColoredConsole.WriteLine(DarkYellow("Performing local build for functions project."));
}
if (GlobalCoreToolsSettings.CurrentWorkerRuntime == WorkerRuntime.Python && !noBuild)
{
return await PythonHelpers.GetPythonDeploymentPackage(FileSystemHelpers.GetLocalFiles(functionAppRoot, ignoreParser), functionAppRoot, buildNativeDeps, buildOption, additionalPackages);
}
else if (GlobalCoreToolsSettings.CurrentWorkerRuntime == WorkerRuntime.Dotnet && !ignoreDotNetCheck && !noBuild && buildOption != BuildOption.Remote)
{
throw new CliException("Pack command doesn't work for dotnet functions");
}
else if (GlobalCoreToolsSettings.CurrentWorkerRuntime == WorkerRuntime.Dotnet && buildOption == BuildOption.Remote)
{
// Remote build for dotnet does not require bin and obj folders. They will be generated during the oryx build
return await CreateZip(FileSystemHelpers.GetLocalFiles(functionAppRoot, ignoreParser, false, new string[] { "bin", "obj" }), functionAppRoot, Enumerable.Empty<string>());
}
else
{
var customHandler = await HostHelpers.GetCustomHandlerExecutable();
IEnumerable<string> executables = !string.IsNullOrEmpty(customHandler)
? new[] { customHandler }
: Enumerable.Empty<string>();
return await CreateZip(FileSystemHelpers.GetLocalFiles(functionAppRoot, ignoreParser, false), functionAppRoot, executables);
}
}