private List <ProjectDeployment> BuildDefaultProjectDeployments(IEnumerable <ProjectInfo> dependentProjectsToDeploy, string defaultTeamCityProjectConfiguration) { var projectDeployments = new List <ProjectDeployment>(); foreach (var projectInfo in dependentProjectsToDeploy) { IEnumerable <TeamCityBuildType> teamCityBuildTypes = _temCityRestClient.GetBuildTypes(projectInfo.ArtifactsRepositoryName); TeamCityBuildType defaultBuildType = teamCityBuildTypes.FirstOrDefault(x => x.Name == defaultTeamCityProjectConfiguration); if (defaultBuildType == null) { throw new DeploymentTaskException(string.Format("TeamCity configuration: [{0}] does not exist for project: [{1}]", defaultTeamCityProjectConfiguration, projectInfo.Name)); } TeamCityBuild lastSuccessfulBuild = _temCityRestClient.GetLastSuccessfulBuild(defaultBuildType.Id); if (lastSuccessfulBuild == null) { throw new DeploymentTaskException(string.Format("Cannot obtain last successful build for project [{0}], configuration: [{1}], team city build type id: [{2}]", projectInfo.Name, defaultTeamCityProjectConfiguration, defaultBuildType.Id)); } var deploymentInfo = new DeploymentInfo(_deploymentId, false, projectInfo.Name, defaultTeamCityProjectConfiguration, lastSuccessfulBuild.Id, _targetEnvironment, projectInfo.CreateEmptyInputParams()); projectDeployments.Add( new ProjectDeployment { ProjectInfo = projectInfo, DeploymentInfo = deploymentInfo, TeamCityBuild = lastSuccessfulBuild, }); } return(projectDeployments); }
public List <ProjectConfigurationBuild> GetProjectConfigurationBuilds(string projectName, string projectConfigurationName, string branchName, int maxCount) { Guard.NotNullNorEmpty(projectName, "projectName"); Guard.NotNullNorEmpty(projectConfigurationName, "projectConfigurationName"); ProjectInfo projectInfo = _projectInfoRepository.FindByName(projectName); TeamCityBuildType teamCityBuildType = _teamCityClient.GetBuildTypes(projectInfo.ArtifactsRepositoryName).FirstOrDefault(x => x.Name == projectConfigurationName); if (teamCityBuildType == null) { return(new List <ProjectConfigurationBuild>()); } IEnumerable <TeamCityBuild> projectConfigurationBuilds = _teamCityClient.GetBuilds(teamCityBuildType.Id, branchName, 0, maxCount, true); return(projectConfigurationBuilds.Select(DtoMapper.Map <TeamCityBuild, ProjectConfigurationBuild>).ToList()); }
private ProjectConfigurationBuild GetLatestSuccessfulBuild(string projectName, string projectConfigurationName) { Guard.NotNullNorEmpty(projectName, "projectName"); Guard.NotNullNorEmpty(projectConfigurationName, "projectConfigurationName"); ProjectInfo projectInfo = _projectInfoRepository.FindByName(projectName); TeamCityBuildType teamCityBuildType = _teamCityClient.GetBuildTypes(projectInfo.ArtifactsRepositoryName).FirstOrDefault(x => x.Name == projectConfigurationName); if (teamCityBuildType == null) { return(null); } TeamCityBuild lastSuccessfulBuild = _teamCityClient.GetLastSuccessfulBuild(teamCityBuildType.Id); ProjectConfigurationBuild projectConfigurationOfLastBuild = DtoMapper.Map <TeamCityBuild, ProjectConfigurationBuild>(lastSuccessfulBuild); return(projectConfigurationOfLastBuild); }