Exemplo n.º 1
0
 /// <summary>
 /// Gets the list of running builds.
 /// </summary>
 /// <returns></returns>
 public List <Build> GetListOfRunningBuilds()
 {
     return(_client.Builds.ByBuildLocator(BuildLocator.RunningBuilds()));
 }
Exemplo n.º 2
0
        public void it_returns_all_running_builds()
        {
            var builds = m_client.Builds.ByBuildLocator(BuildLocator.RunningBuilds());

            Assert.IsNotNull(builds, "There are currently no running builds");
        }
Exemplo n.º 3
0
        public BuildStatus Poll()
        {
            FileLogger.Logger.LogVerbose("Polling Monitor: {0}", Name);
            var runningBuilds = _client.BuildsByBuildLocator(BuildLocator.RunningBuilds());

            foreach (var build in _builds)
            {
                // Mark the current last state for the Build.
                // ------------------------------------------------------------------------------
                DateTime dateTime;
                try {
                    var lastbuild = _client.LastBuildByBuildConfigId(build.ID);
                    switch (lastbuild.Status)
                    {
                    case "SUCCESS":
                        build.Status = Status.Success;
                        break;

                    case "ERROR":
                    case "FAILURE":
                        build.Status = Status.Failed;
                        break;

                    case "UNKNOWN":
                        build.Status = Status.Unknown;
                        break;

                    default:
                        Console.WriteLine(lastbuild.Status);
                        break;
                    }
                    if (!string.IsNullOrEmpty(lastbuild.FinishDate))
                    {
                        DateTime.TryParse(lastbuild.FinishDate, out dateTime);
                        build.DateTime = dateTime;
                    }
                } catch {
                    // LastBuildByBuildID will throw an exception if no builds have occurred.
                    // So we need to catch this and simulate an SUCCESS state.
                    build.Status = Status.Success;
                }

                // Update any which are "RUNNING" Now
                // --------------------------------------------------------------------
                if (runningBuilds != null)
                {
                    foreach (var runningBuild in runningBuilds)
                    {
                        if (build.ID.Equals(runningBuild.BuildTypeId))
                        {
                            switch (build.Status)
                            {
                            case Status.Success:
                                build.Status = Status.SuccessInProgress;
                                break;

                            case Status.Failed:
                                build.Status = Status.FailedInProgress;
                                break;

                            default:
                                build.Status = Status.InProgress;
                                break;
                            }

                            if (!string.IsNullOrEmpty(runningBuild.FinishDate))
                            {
                                DateTime.TryParse(runningBuild.FinishDate, out dateTime);
                                build.DateTime = dateTime;
                            }
                        }
                    }
                }
            }
            return(DetermineMonitorState());
        }