public void Execute(DeploymentTaskContext context) { _context = context; var exePath = Folder.Combine(_serviceFolder, _hostFileName); var arguments = "config-sample"; context.BuildLog.WriteLine($"Executing: '{exePath} {arguments}'"); var result = ProcessStarter.ExecuteWithParams(exePath, arguments, throwOnError: false); if (result.ExitCode == 0) { var sample = result.StdOut; context.BuildLog.WriteLine($"Completion result: {sample}"); var anEvent = new ConfigSampleReceived(_context.GetValue <ObjectId>(DeploymentTaskContext.DeploymentId), sample); _context.Publisher.Publish(anEvent); } else { context.BuildLog.WriteLine($"Completion error: {result.StdError}"); context.BuildLog.WriteLine($"Completion output: {result.StdOut}"); context.BuildLog.WriteLine($"May be service does not support command 'config-sample'?"); } }
private DeploymentTask CreateDeployTask(string name, Deployment deployment, NugetFeed deploymentFeed, object parameters = null, Stream logStream = null) { var context = new DeploymentTaskContext() { TaskName = name, Parameters = parameters ?? new object(), DeploymentId = deployment.Id, Folders = deployment.Folders, ServiceFileName = $"{deployment.PackageId}.exe", InstanceName = deployment.InstanceName, ServiceName = string.IsNullOrWhiteSpace(deployment.InstanceName) ? deployment.PackageId : $"{deployment.PackageId}${deployment.InstanceName}", PackageDetails = new PackageDetails(deployment.PackageId, deploymentFeed.Uri, deployment.PackageVersion), KeepOnUpdate = deployment.KeepOnUpdate ?? FileList.Empty, Mediator = _mediator, Config = deployment.Config }; var template = _service.GetTemplate(name); var task = new DeploymentTask(context); foreach (var operationType in template.Operations) { var operation = (IOperation)_kernel.Resolve(operationType); task.Add(operation); } return(task); }
private DeploymentTask CreateDeployTask(string name, Deployment deployment, Stream logStream = null) { var actualLogStream = logStream ?? BuildDefaultLogStream(name, deployment); var streamWriter = new StreamWriter(actualLogStream); var context = new DeploymentTaskContext(streamWriter); context .SetValue(DeploymentTaskContext.TaskName, name) .SetValue(DeploymentTaskContext.DeploymentId, deployment.Id) .SetValue(DeploymentTaskContext.PublisherKey, _publisher) .SetValue(DeploymentTaskContext.LogStream, actualLogStream) .SetValue(DeploymentTaskContext.Folders, deployment.ServiceFolders.HostFolders.ToArray()) .SetValue(DeploymentTaskContext.Config, deployment.Config); return(new DeploymentTask(context)); }
public void Execute(DeploymentTaskContext context) { foreach (var folder in _folders) { try { context.BuildLog.Write("Delete folder {0} ", folder); Folder.EnsureDeleted(folder); context.BuildLog.WriteLine("succed."); } catch { context.BuildLog.WriteLine("failed."); throw; } } }
public void Execute(DeploymentTaskContext context) { var exePath = Folder.Combine((string)context.Folders.DeployFolder, context.ServiceFileName); var arguments = "config-sample"; context.BuildLog.WriteLine($"Executing: '{exePath} {arguments}'"); var result = ProcessStarter.ExecuteWithParams(exePath, arguments, throwOnError: false); if (result.ExitCode == 0) { var sample = result.StdOut; context.BuildLog.WriteLine($"Completion result: {sample}"); var request = new SetConfigSampleRequest(context.DeploymentId, sample); context.Mediator.Send(request); } else { context.BuildLog.WriteLine($"Completion error: {result.StdError}"); context.BuildLog.WriteLine($"Completion output: {result.StdOut}"); context.BuildLog.WriteLine($"May be service does not support command 'config-sample'?"); } }
public void Execute(DeploymentTaskContext context) { context.Publisher.Publish(new DeploymentDeletedEvent(_id)); }
public DeploymentTask(DeploymentTaskContext context) { _operations = new List <IOperation>(); Context = context; }