public override void Deploy(DeploymentMetadata metadata) { var packageFilename = CreateArchive(metadata); if (string.IsNullOrEmpty(packageFilename)) { throw new FileNotFoundException("Failed to create zip archive from output"); } TransferArchive(metadata, packageFilename); }
private void TransferArchive(DeploymentMetadata metadata, string filename) { HttpContent streamContent = new StreamContent(File.OpenRead(filename)); using (var client = new HttpClient()) { using (var formData = new MultipartFormDataContent()) { formData.Add(streamContent, "files", Path.GetFileName(filename)); HttpResponseMessage response = client.PostAsync(new Uri(metadata.TargetFileUploadUriAddress), formData).Result; if (!response.IsSuccessStatusCode) { Debug.WriteLine("Failed to send"); } } } }
private DeploymentMetadata GetMetadata() { var result = new DeploymentMetadata(); result.DeploymentType = IsPortable ? DeploymentType.FrameworkDependent : DeploymentType.SelfContained; result.ApplicationName = ApplicationName; result.ApplicationVersion = ApplicationVersion; if (string.IsNullOrEmpty(PackageName)) { result.PackageFileName = Path.Combine(PublishedOutput, $"{result.ApplicationName}-{result.ApplicationVersion}"); } else { result.PackageFileName = PackageName; } result.PathToFiles = PublishedOutput; return(result); }
private string CreateArchive(DeploymentMetadata metadata) { var filename = metadata.PackageFileName.Contains(".zip") ? metadata.PackageFileName : $"{metadata.PackageFileName}.zip"; if (File.Exists(filename)) { File.Delete(filename); } var tempFilename = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString()); try { ZipFile.CreateFromDirectory(metadata.PathToFiles, tempFilename); File.Copy(tempFilename, filename); return(filename); } finally { File.Delete(tempFilename); } }
public abstract void Deploy(DeploymentMetadata metadata);