public override async Task RunAsync() { var assemblyFilename = Path.Combine(BinDirectory, AssemblyFilename); if (!File.Exists(assemblyFilename)) { throw new FileNotFoundException($"The assembly file '{assemblyFilename}' could not be found!"); } Domain = new ServerDomain(); Domain.Initialize(assemblyFilename); var context = new ServerDeployContext { DeploymentNumber = DeploymentNumber, Project = Project, Agents = PhotonServer.Instance.Agents.All.ToArray(), ProjectPackageId = ProjectPackageId, ProjectPackageVersion = ProjectPackageVersion, EnvironmentName = EnvironmentName, ScriptName = ScriptName, WorkDirectory = WorkDirectory, BinDirectory = BinDirectory, ContentDirectory = ContentDirectory, Packages = PackageClient, ConnectionFactory = ConnectionFactory, Output = Output, ServerVariables = Variables, }; await Domain.RunDeployScript(context, TokenSource.Token); }
public override async Task RunAsync() { var assemblyFilename = Path.Combine(BinDirectory, AssemblyFilename); if (!File.Exists(assemblyFilename)) { throw new FileNotFoundException($"The assembly file '{assemblyFilename}' could not be found!"); } Domain = new ServerDomain(); Domain.Initialize(assemblyFilename); using (var contextOutput = new DomainOutput()) { contextOutput.OnWrite += (text, color) => Output.Write(text, color); contextOutput.OnWriteLine += (text, color) => Output.WriteLine(text, color); contextOutput.OnWriteRaw += (text) => Output.WriteRaw(text); var context = new ServerDeployContext { DeploymentNumber = Deployment.Number, Project = Project, Agents = PhotonServer.Instance.Agents.All.ToArray(), ProjectPackageId = ProjectPackageId, ProjectPackageVersion = ProjectPackageVersion, EnvironmentName = EnvironmentName, ScriptName = ScriptName, WorkDirectory = WorkDirectory, BinDirectory = BinDirectory, ContentDirectory = ContentDirectory, Packages = PackageClient, ConnectionFactory = ConnectionFactory, Output = contextOutput, ServerVariables = Variables, }; try { await Domain.RunDeployScript(context, TokenSource.Token); Deployment.IsSuccess = true; } catch (OperationCanceledException) { Deployment.IsCancelled = true; throw; } catch (Exception error) { Deployment.Exception = error.UnfoldMessages(); throw; } finally { Deployment.IsComplete = true; Deployment.Duration = DateTime.UtcNow - Deployment.Created; //Deployment.ApplicationPackages = ?; Deployment.Save(); await Deployment.SetOutput(Output.GetString()); // TODO: Save alternate version with ansi characters removed } } }