public static Build ToBuild(TeamCitySharp.DomainEntities.Build sharpBuild)
 {
     if (sharpBuild == null)
     {
         return(new Build());
     }
     return(new Build {
         Id = sharpBuild.Id, Name = sharpBuild.BuildTypeId, Status = sharpBuild.Status
     });
 }
Beispiel #2
0
        private int GetLastSuccessfulVCRev()
        {
            var    client        = new TeamCityClient(TeamCityUrl, true);
            string buildConfigId = TeamCityBuildConfID;

            try
            {
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            //retrieve latest successfull build
            TeamCitySharp.DomainEntities.Build b = client.Builds.LastSuccessfulBuildByBuildConfigId(buildConfigId, null);
            string lastSuccessfullBuildId        = b.Id;
            string build_status = b.Status;

            //now get the build info
            var buildinfo   = client.Builds.ById(b.Id);
            var buildNumber = buildinfo.Number;
            //var buildEnv = buildinfo.Properties.Property

            //The version control revision is not allways present in the build info - especialy in the way the TC templates is structured within Binck
            //Now get the SnapshotDependencies build resource link...
            string bldSnapshotDepHref     = buildinfo.SnapshotDependencies.Build[0].Href;
            string snapshotBuildDepTypeId = buildinfo.SnapshotDependencies.Build[0].BuildTypeId;

            //Now use the link isolated in the SnapshotDependencies to locate the change that was used in the compile
            string vc_revision = RetrieveVCRevisionUsed(bldSnapshotDepHref);

            Console.WriteLine(Environment.NewLine + "Last successfull build for {0} is build number:{1} (build id:{2})", buildConfigId, buildNumber, lastSuccessfullBuildId);
            Console.WriteLine("Build number:{0} (build id:{1}) was build with VC revision: {2}", buildNumber, lastSuccessfullBuildId, vc_revision);
            Console.WriteLine("Build number:{0} (build id:{1}) was:{1} ", buildNumber, lastSuccessfullBuildId, build_status);
            return(int.Parse(vc_revision));
        }