private void ProcessMapping(BuildStatusChangeEvent statusChanged, BuildDetail buildDetail, Mapping mapping, IPostDeployAction postDeployAction) { lock (GetLockObject(mapping)) { var deployAgent = _deployAgentProvider.GetDeployAgent(mapping); // default to "happy; did nothing" if there's no deployment agent. var deployResult = new DeployAgentResult { HasErrors = false, Output = string.Empty }; if (deployAgent != null) { using (var workingDirectory = new WorkingDirectory()) { var deployAgentDataFactory = new DeployAgentDataFactory(); var deployData = deployAgentDataFactory.Create(workingDirectory.DirectoryInfo.FullName, mapping, buildDetail, statusChanged); _deploymentFolderSource.DownloadDeploymentFolder(deployData.TfsBuildDetail, workingDirectory.DirectoryInfo.FullName); deployResult = deployAgent.Deploy(deployData); } } postDeployAction.DeploymentFinished(mapping, deployResult); } }
public void DeployAgentDataFactory_should_expose_event_qualities() { const string oldQuality = "QA"; const string newQuality = "Production"; // Arrange var deployScriptRoot = Path.GetTempPath(); var mapping = new Mapping(); var buildDetail = new BuildDetail(); var changeEvent = new BuildStatusChangeEvent { StatusChange = new Change { OldValue = oldQuality, NewValue = newQuality } }; var factory = new DeployAgentDataFactory(); // Act var data = factory.Create(deployScriptRoot, mapping, buildDetail, changeEvent); // Assert Assert.AreEqual(oldQuality, data.OriginalQuality, "OriginalQuality"); Assert.AreEqual(newQuality, data.NewQuality, "NewQuality"); }
public void Execute(BuildStatusChangeEvent statusChanged, BuildDetail buildDetail, Mapping mapping, IPostDeployAction postDeployAction, int deploymentId) { lock (_namedLockSet.GetLockObject(mapping.Queue)) { _deploymentEventRecorder.RecordStarted(deploymentId); var deployAgent = _deployAgentProvider.GetDeployAgent(mapping); // default to "happy; did nothing" if there's no deployment agent. var deployResult = new DeployAgentResult { HasErrors = false, Output = string.Empty }; if (deployAgent != null) { using (var workingDirectory = new WorkingDirectory()) { var deployAgentDataFactory = new DeployAgentDataFactory(); var deployData = deployAgentDataFactory.Create(workingDirectory.DirectoryInfo.FullName, mapping, buildDetail, statusChanged); deployData.DeploymentId = deploymentId; _deploymentFolderSource.DownloadDeploymentFolder(deployData.TfsBuildDetail, workingDirectory.DirectoryInfo.FullName); deployResult = deployAgent.Deploy(deployData); } } postDeployAction.DeploymentFinished(mapping, deployResult); _deploymentEventRecorder.RecordFinished(deploymentId, deployResult.HasErrors, deployResult.Output); } }
private DeployAgentData CreateDeployAgentData() { var mapping = CreateMapping(); var buildInfo = CreateBuildDetail(); var buildStatusChangeEvent = new BuildStatusChangeEvent { StatusChange = new Change() }; var factory = new DeployAgentDataFactory(); return(factory.Create(DeployScriptRoot, mapping, buildInfo, buildStatusChangeEvent)); }
public void DeployAgentDataFactory_should_convert_zero_timeout_seconds_to_timespan_maxvalue() { // Arrange var deployScriptRoot = Path.GetTempPath(); var mapping = new Mapping { TimeoutSeconds = 0 }; var buildDetail = new BuildDetail(); var changeEvent = new BuildStatusChangeEvent { StatusChange = new Change() }; var factory = new DeployAgentDataFactory(); // Act var data = factory.Create(deployScriptRoot, mapping, buildDetail, changeEvent); // Assert Assert.AreEqual(TimeSpan.MaxValue, data.Timeout); }