public IOrderedEnumerable<IQueuedBuild> GetBuilds() { BuildQueryResult = _BuildServer.QueryQueuedBuilds(_QueuedBuildSpec); return from builds in BuildQueryResult.QueuedBuilds orderby builds.QueueTime ascending // orderby builds.BuildController ascending, builds.QueueTime ascending select builds; }
private bool CheckDefinition() { if (this.TeamProject.Expression == null) { var buildDetail = this.ActivityContext.GetExtension <IBuildDetail>(); this.TeamProject.Set(this.ActivityContext, buildDetail.TeamProject); } IQueuedBuildSpec buildSpec = this.bs.CreateBuildQueueSpec(this.TeamProject.Get(this.ActivityContext), this.BuildDefinition.Get(this.ActivityContext)); IQueuedBuildQueryResult builds = this.bs.QueryQueuedBuilds(buildSpec); return(builds.QueuedBuilds.Any(this.IsQueuedBuildRunning)); }
/// <summary> /// http://stackoverflow.com/questions/10557814/how-to-get-a-specific-build-with-the-tfs-api /// </summary> /// <param name="TeamProject"></param> /// <param name="BuildDefinition"></param> /// <param name="BuildID"></param> /// <returns></returns> public string GetBuildStatus(TfsTeamProjectCollection tfs, string TeamProject, string BuildDefinition, int BuildID) { IBuildServer buildServer = (IBuildServer)tfs.GetService(typeof(IBuildServer)); string status = string.Empty; IQueuedBuildSpec qbSpec = buildServer.CreateBuildQueueSpec(TeamProject, BuildDefinition); IQueuedBuildQueryResult qbResults = buildServer.QueryQueuedBuilds(qbSpec); if (qbResults.QueuedBuilds.Length > 0) { IQueuedBuild build = qbResults.QueuedBuilds.Where(x => x.Id == BuildID).FirstOrDefault(); status = build.Status.ToString(); } return(status); }
/// <summary> /// Retrieves the queued builds for a specific build definition in the specified project /// </summary> /// <param name="oneProject">project we are interested in</param> /// <param name="definitionName">the build definition we are looking at to check for queued, null means no matching on name</param> /// <returns>an array of queued builds that match the parameters criterea</returns> public IQueuedBuild[] GetQueuedBuilds(TeamProject oneProject, string definitionName) { IQueuedBuildSpec qbs; if (definitionName != null) { qbs = this.Connection.BuildServer.CreateBuildQueueSpec(oneProject.Name, definitionName); } else { qbs = this.Connection.BuildServer.CreateBuildQueueSpec(oneProject.Name); } IQueuedBuildQueryResult foundQueuedBuilds = this.Connection.BuildServer.QueryQueuedBuilds(qbs); IQueuedBuild[] extractedQueuedBuilds = foundQueuedBuilds.QueuedBuilds; return(extractedQueuedBuilds); }