Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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());
        }
Ejemplo n.º 3
0
        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);
        }