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;
 }
Example #2
0
        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));
        }
Example #3
0
        /// <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);
        }
Example #4
0
        /// <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);
        }