void StagePackageReferences(RunningDeployment deployment) { var variables = deployment.Variables; // No need to check for "default" package since it gets extracted in the current directory in previous step. var packageReferenceNames = variables.GetIndexes(PackageVariables.PackageCollection) .Where(i => !string.IsNullOrEmpty(i)); foreach (var packageReferenceName in packageReferenceNames) { Log.Verbose($"Considering '{packageReferenceName}' for extraction"); var sanitizedPackageReferenceName = fileSystem.RemoveInvalidFileNameChars(packageReferenceName); var packageOriginalPath = variables.Get(PackageVariables.IndexedOriginalPath(packageReferenceName)); if (string.IsNullOrWhiteSpace(packageOriginalPath)) { Log.Info($"Package '{packageReferenceName}' was not acquired or does not require staging"); continue; } packageOriginalPath = Path.GetFullPath(variables.Get(PackageVariables.IndexedOriginalPath(packageReferenceName))); // In the case of container images, the original path is not a file-path. We won't try and extract or move it. if (!fileSystem.FileExists(packageOriginalPath)) { Log.Verbose($"Package '{packageReferenceName}' was not found at '{packageOriginalPath}', skipping extraction"); continue; } var shouldExtract = variables.GetFlag(PackageVariables.IndexedExtract(packageReferenceName)); if (forceExtract || shouldExtract) { var extractionPath = Path.Combine(deployment.CurrentDirectory, sanitizedPackageReferenceName); ExtractPackage(packageOriginalPath, extractionPath); Log.SetOutputVariable(SpecialVariables.Packages.ExtractedPath(packageReferenceName), extractionPath, variables); } else { var localPackageFileName = sanitizedPackageReferenceName + Path.GetExtension(packageOriginalPath); var destinationPackagePath = Path.Combine(deployment.CurrentDirectory, localPackageFileName); Log.Info($"Copying package: '{packageOriginalPath}' -> '{destinationPackagePath}'"); fileSystem.CopyFile(packageOriginalPath, destinationPackagePath); Log.SetOutputVariable(SpecialVariables.Packages.PackageFilePath(packageReferenceName), destinationPackagePath, variables); Log.SetOutputVariable(SpecialVariables.Packages.PackageFileName(packageReferenceName), localPackageFileName, variables); } } }
void StagePackageReferences(RunningDeployment deployment) { var variables = deployment.Variables; var packageReferenceNames = variables.GetIndexes(SpecialVariables.Packages.PackageCollection); foreach (var packageReferenceName in packageReferenceNames) { var sanitizedPackageReferenceName = fileSystem.RemoveInvalidFileNameChars(packageReferenceName); var packageOriginalPath = variables.Get(SpecialVariables.Packages.OriginalPath(packageReferenceName)); if (string.IsNullOrWhiteSpace(packageOriginalPath)) { Log.Info($"Package '{packageReferenceName}' was not acquired"); continue; } packageOriginalPath = Path.GetFullPath(variables.Get(SpecialVariables.Packages.OriginalPath(packageReferenceName))); // In the case of container images, the original path is not a file-path. We won't try and extract or move it. if (!fileSystem.FileExists(packageOriginalPath)) { continue; } var shouldExtract = variables.GetFlag(SpecialVariables.Packages.Extract(packageReferenceName)); if (forceExtract || shouldExtract) { var extractionPath = Path.Combine(deployment.CurrentDirectory, sanitizedPackageReferenceName); ExtractPackage(packageOriginalPath, extractionPath); Log.SetOutputVariable(SpecialVariables.Packages.ExtractedPath(packageReferenceName), extractionPath, variables); } else { var localPackageFileName = sanitizedPackageReferenceName + Path.GetExtension(packageOriginalPath); var destinationPackagePath = Path.Combine(deployment.CurrentDirectory, localPackageFileName); Log.Info($"Copying package: '{packageOriginalPath}' -> '{destinationPackagePath}'"); fileSystem.CopyFile(packageOriginalPath, destinationPackagePath); Log.SetOutputVariable(SpecialVariables.Packages.PackageFilePath(packageReferenceName), destinationPackagePath, variables); Log.SetOutputVariable(SpecialVariables.Packages.PackageFileName(packageReferenceName), localPackageFileName, variables); } } }
public void Install(RunningDeployment deployment) { var transferPath = CrossPlatform.ExpandPathEnvironmentVariables(deployment.Variables.Get(PackageVariables.TransferPath)); fileSystem.EnsureDirectoryExists(transferPath); var fileName = deployment.Variables.Get(PackageVariables.OriginalFileName) ?? Path.GetFileName(deployment.PackageFilePath); var filePath = Path.Combine(transferPath, fileName); if (fileSystem.FileExists(filePath)) { log.Info($"File {filePath} already exists so it will be attempted to be overwritten"); } fileSystem.CopyFile(deployment.PackageFilePath, filePath); log.Info($"Copied package '{fileName}' to directory '{transferPath}'"); log.SetOutputVariableButDoNotAddToVariables(PackageVariables.Output.DirectoryPath, transferPath); log.SetOutputVariableButDoNotAddToVariables(PackageVariables.Output.FileName, fileName); log.SetOutputVariableButDoNotAddToVariables(PackageVariables.Output.FilePath, filePath); }
public void Install(RunningDeployment deployment) { var transferPath = deployment.Variables.GetEvironmentExpandedPath(SpecialVariables.Package.TransferPath); fileSystem.EnsureDirectoryExists(transferPath); var fileName = deployment.Variables.Get(SpecialVariables.Package.OriginalFileName) ?? Path.GetFileName(deployment.PackageFilePath); var filePath = Path.Combine(transferPath, fileName); if (fileSystem.FileExists(filePath)) { Log.Info($"File {filePath} already exists so it will be attempted to be overwritten"); } fileSystem.CopyFile(deployment.PackageFilePath, filePath); Log.Info($"Copied package '{fileName}' to directory '{transferPath}'"); Log.SetOutputVariable(SpecialVariables.Package.Output.DirectoryPath, transferPath); Log.SetOutputVariable(SpecialVariables.Package.Output.FileName, fileName); Log.SetOutputVariable(SpecialVariables.Package.Output.FilePath, filePath); }