private void CheckForNewBuilds() { //TODO:Sort out the inprogress builds. if (_inProgressBuild == null) { // enumerate all the build types checking for an inprogress build... foreach (BuildTypeModel buildType in _buildProjects.SelectMany(p => p.BuildTypes)) { IBuildProgress inProgressBuild = Client.GetInProgressBuild(buildType.Id); if (inProgressBuild != null) { _inProgressBuild = inProgressBuild; OnBuildUpdated(CreateBuildModel(_inProgressBuild)); } } } // get all completed builds and trigger events IEnumerable<IBuildResult> completedBuilds = Client.GetCompletedBuilds(); IEnumerable<IBuildResult> unseenBuilds = completedBuilds == null ? new IBuildResult[0] : completedBuilds.Where( c => !_completedBuildIds.Contains(c.Id) && (BuildTypeIds.Length == 0 || BuildTypeIds.Contains(c.BuildTypeId))); foreach (IBuildResult unseenBuild in unseenBuilds) { IFullBuildResult detailedUnseenBuild = Client.GetCompletedBuild(unseenBuild.Id); _completedBuildIds.Add(unseenBuild.Id); OnBuildUpdated(CreateBuildModel(detailedUnseenBuild)); } }
private void UpdateInProgressBuildStatus() { // get the latest version of the _inprogressBuild... IBuildProgress latestBuild = Client.GetInProgressBuild(_inProgressBuild.BuildTypeId); if (latestBuild == null) { // build has finished! _inProgressBuild = null; } else { _inProgressBuild = latestBuild; OnBuildUpdated(CreateBuildModel(_inProgressBuild)); } }
public BuildSummaryWriter(IBuildProgress progress, IOutput output) { _progress = progress; _output = output; }
private BuildModel CreateBuildModel(IBuildProgress source) { return new BuildModel { Id = source.Id, Number = source.Number, Status = source.Status, WebUri = source.WebUri, Personal = source.Personal, History = source.History, Pinned = source.Pinned, StatusText = source.StatusText, BuildType = _buildProjects.SelectMany(b => b.BuildTypes).Where(t => t.Id == source.BuildTypeId). FirstOrDefault(), Started = source.Started, Finished = null, AgentId = source.AgentId, PercentageComplete = source.PercentageComplete, ElapsedRunTime = source.ElapsedRunTime, EstimatedRunTime = source.EstimatedRunTime, CurrentStage = source.CurrentStage, OutDated = source.Outdated, ProbablyHanging = source.ProbablyHanging, IsRunning = true }; }
public TaskMonitor(IBuildProgress buildProgress, IBuildState buildState) { _buildProgress = buildProgress; _buildState = buildState; }