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 }); }
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)); }