private bool TreatAsFailure(BuildStatusEnum status) { return(status == BuildStatusEnum.Failed || (status == BuildStatusEnum.Unstable && ConfigurationService.NotificationSettings.TreatUnstableAsFailed)); }
private void SetBackgroundColors(BuildStatusEnum buildStatusEnum) { Color backgroundColor = GetBackgroundColor(buildStatusEnum); _projectName.BackColor = backgroundColor; _buildStatusIcon.BackColor = backgroundColor; }
public static BuildTransition GetBuildTransition(BuildStatusEnum buildStatusEnum) { BuildTransition buildTransition = null; switch (buildStatusEnum) { case BuildStatusEnum.Aborted: buildTransition = BuildTransition.Aborted; break; case BuildStatusEnum.Failed: buildTransition = BuildTransition.Failed; break; case BuildStatusEnum.Unstable: buildTransition = BuildTransition.Unstable; break; case BuildStatusEnum.Successful: buildTransition = BuildTransition.Successful; break; default: buildTransition = BuildTransition.Successful; break; } return(buildTransition); }
private void LoadIcon(BuildStatusEnum statusValue, bool isInProgress, bool isStuck) { BuildStatus status = new BuildStatus(statusValue, isInProgress, isStuck); if (iconsByKey.ContainsKey(status.Key)) { return; } try { string resourceName = string.Format("JenkinsTray.Resources.StatusIcons.{0}.gif", status.Key); Image img = ResourceImageHelper.CreateImageFromResources(resourceName, GetType().Assembly); byte[] imgBytes = DevExpress.XtraEditors.Controls.ByteImageConverter.ToByteArray(img, ImageFormat.Gif); iconsByKey.Add(status.Key, imgBytes); } catch (Exception ex) { XtraMessageBox.Show(JenkinsTrayResources.FailedLoadingIcons_Text, JenkinsTrayResources.FailedLoadingIcons_Caption, MessageBoxButtons.OK, MessageBoxIcon.Error); LoggingHelper.LogError(logger, ex); throw new Exception("Failed loading icon: " + status, ex); } }
public BuildStatus(BuildStatusEnum value, bool isInProgress, bool isStuck) { if (value < BuildStatusEnum.Successful) isInProgress = false; this.Value = value; this.IsInProgress = isInProgress; this.IsStuck = isStuck; }
public GamePage() { InitializeComponent(); _buildStatus = BuildStatusEnum.None; _gameState = GameState.FirstTurn; BuildPopup.Width = Application.Current.Host.Content.ActualWidth; _r = new Random(); _pollTimer = new DispatcherTimer { Interval = TimeSpan.FromSeconds(5) }; # region stuff
public BuildStatus(BuildStatusEnum value, bool isInProgress, bool isStuck) { if (value < BuildStatusEnum.Successful) { isInProgress = false; } this.Value = value; this.IsInProgress = isInProgress; this.IsStuck = isStuck; }
public NewNewsItemEventArgs AsNewsItemEventArgs(BuildStatusEnum previousWorkingOrBrokenBuildStatus, SirenOfShameSettings settings) { var person = settings.FindAddPerson(RequestedBy); return(new NewNewsItemEventArgs { Person = person, EventDate = DateTime.Now, Title = GetNewsItemTitle(previousWorkingOrBrokenBuildStatus), BuildDefinitionId = BuildDefinitionId, NewsItemType = GetNewsItemType(), ReputationChange = GetReputationChange(), BuildId = BuildId }); }
private static string BuildStatusToString(BuildStatusEnum buildStatus) { switch (buildStatus) { case BuildStatusEnum.Broken: return "Broken"; case BuildStatusEnum.Working: return "Passing"; case BuildStatusEnum.Unknown: return "Unknown"; case BuildStatusEnum.InProgress: return "In Progress"; default: throw new Exception("Unknown Status " + buildStatus); } }
public void InvokeStatusChecked(BuildStatusEnum status) { InvokeStatusChecked(new[] { new BuildStatus { BuildStatusEnum = status, Name = BUILD1_ID, RequestedBy = CURRENT_USER, BuildDefinitionId = BUILD1_ID, StartedTime = new DateTime(2010, 1, 1, 1, 1, 1), FinishedTime = status == BuildStatusEnum.InProgress ? (DateTime?)null : new DateTime(2010, 1, 1, 1, 10, 10), Comment = "Fixing a typo" } }); }
private void _status_SelectedIndexChanged(object sender, EventArgs e) { var newBuildStatus = (BuildStatusEnum)Enum.Parse(typeof(BuildStatusEnum), _status.Text); if ((_buildStatus == BuildStatusEnum.Unknown || _buildStatus == BuildStatusEnum.Working || _buildStatus == BuildStatusEnum.Broken) && newBuildStatus == BuildStatusEnum.InProgress) { _startedTime = DateTime.UtcNow; } else if (_buildStatus == BuildStatusEnum.InProgress && (newBuildStatus == BuildStatusEnum.Working || newBuildStatus == BuildStatusEnum.Broken)) { _finishedTime = DateTime.UtcNow; } _buildStatus = newBuildStatus; UpdateDateTimeTextboxes(); }
private static string BuildStatusToString(BuildStatusEnum buildStatus) { switch (buildStatus) { case BuildStatusEnum.Broken: return("Broken"); case BuildStatusEnum.Working: return("Passing"); case BuildStatusEnum.Unknown: return("Unknown"); case BuildStatusEnum.InProgress: return("In Progress"); default: throw new Exception("Unknown Status " + buildStatus); } }
private DateTime?GetFinishedTime(BuildStatusInfo buildStatusInfo, BuildStatusEnum buildStatusEnum, DateTime?lastBuildTime) { if (buildStatusInfo.LastBuildStatusEnum == null) { return(lastBuildTime); } var lastBuildStatusEnum = buildStatusInfo.LastBuildStatusEnum.Value; // the build stopped since our last poll time so update the finished time if (buildStatusEnum != BuildStatusEnum.InProgress && lastBuildStatusEnum == BuildStatusEnum.InProgress) { buildStatusInfo.FinishedTime = DateTime.Now; } if (buildStatusInfo.FinishedTime == null && buildStatusEnum != BuildStatusEnum.InProgress) { return(lastBuildTime); } return(buildStatusInfo.FinishedTime); }
// http://javadoc.jenkins-ci.org/hudson/model/Result.html public static BuildStatusEnum StringToBuildStatus(string result) { BuildStatusEnum status = BuildStatusEnum.Unknown; result = result.ToLower(); if (result == SUCCESS) { status = BuildStatusEnum.Successful; } else if (result == FAILURE) { status = BuildStatusEnum.Failed; } else if (result == UNSTABLE) { status = BuildStatusEnum.Unstable; } else if (result == ABORTED) { status = BuildStatusEnum.Aborted; } return(status); }
private static DateTime?GetStartedTime(BuildStatusInfo buildStatusInfo, BuildStatusEnum buildStatusEnum, DateTime?lastBuildTime) { bool thisIsTheFirstBuild = buildStatusInfo.LastBuildStatusEnum == null; if (thisIsTheFirstBuild) { return(lastBuildTime); } var lastBuildStatusEnum = buildStatusInfo.LastBuildStatusEnum.Value; // the build started since our last poll time so update the start time if (buildStatusEnum == BuildStatusEnum.InProgress && lastBuildStatusEnum != BuildStatusEnum.InProgress) { buildStatusInfo.StartedTime = DateTime.Now; } if (buildStatusInfo.StartedTime == null) { return(lastBuildTime); } return(buildStatusInfo.StartedTime); }
private BuildStatus CreateBuildStatus(IBuildDetail buildDetail, IEnumerable <MyTfsBuildDefinition> allBuildDefinitions, bool applyBuildQuality) { BuildStatusEnum buildStatus = GetBuildStatusEnum(buildDetail.Status); var buildQuality = GetBuildStatusEnum(buildDetail.Quality); if (applyBuildQuality && buildStatus == BuildStatusEnum.Working) { buildStatus = buildQuality; } var result = new BuildStatus { BuildStatusEnum = buildStatus, StartedTime = buildDetail.StartTime == DateTime.MinValue ? (DateTime?)null : buildDetail.StartTime, FinishedTime = buildDetail.FinishTime == DateTime.MinValue ? (DateTime?)null : buildDetail.FinishTime, }; var matchedBuildDefinition = allBuildDefinitions.FirstOrDefault(i => i.Uri == buildDetail.BuildDefinitionUri); if (matchedBuildDefinition != null) { result.Name = matchedBuildDefinition.Name; result.BuildDefinitionId = matchedBuildDefinition.Id; } else { _log.Error("The server appeared to return a build definition that we are not watching: " + buildDetail.BuildDefinitionUri); } result.BuildId = buildDetail.Uri.Segments.LastOrDefault(); SetCheckinInfo(buildDetail, applyBuildQuality, result, buildQuality, matchedBuildDefinition); result.Url = _tfsProject.ConvertTfsUriToUrl(buildDetail.Uri); return(result); }
private void LoadIcon(BuildStatusEnum statusValue, bool isInProgress, bool isStuck) { BuildStatus status = new BuildStatus(statusValue, isInProgress, isStuck); if (iconsByKey.ContainsKey(status.Key)) { return; } try { string resourceName = string.Format("JenkinsTray.Resources.TrayIcons.{0}.ico", status.Key); Icon icon = ResourceImageHelper.CreateIconFromResources(resourceName, GetType().Assembly); iconsByKey.Add(status.Key, icon); } catch (Exception ex) { XtraMessageBox.Show(JenkinsTrayResources.FailedLoadingIcons_Text, JenkinsTrayResources.FailedLoadingIcons_Caption, MessageBoxButtons.OK, MessageBoxIcon.Error); LoggingHelper.LogError(logger, ex); throw new Exception("Failed loading icon: " + statusValue, ex); } }
private string GetNewsItemTitle(BuildStatusEnum previousWorkingOrBrokenBuildStatus) { var wasBrokenNowWorking = previousWorkingOrBrokenBuildStatus == BuildStatusEnum.Broken && BuildStatusEnum == BuildStatusEnum.Working; var wasBrokenNowBroken = previousWorkingOrBrokenBuildStatus == BuildStatusEnum.Broken && BuildStatusEnum == BuildStatusEnum.Broken; var wasWorkingNowBroken = previousWorkingOrBrokenBuildStatus == BuildStatusEnum.Working && BuildStatusEnum == BuildStatusEnum.Broken; var inProgress = BuildStatusEnum == BuildStatusEnum.InProgress; if (inProgress) { return(string.Format("'{0}'", Comment)); } if (wasBrokenNowWorking) { return(string.Format("Fixed the broken build")); } if (wasWorkingNowBroken) { return(string.Format("Broke the build")); } if (wasBrokenNowBroken) { return(string.Format("Failed to fix the build")); } if (BuildStatusEnum == BuildStatusEnum.Working || BuildStatusEnum == BuildStatusEnum.Unknown) { return(string.Format("Successful build")); } // some other previous status? this should never happen if (BuildStatusEnum == BuildStatusEnum.Broken) { return(string.Format("Broke the build")); } throw new Exception("Unknown build status: " + BuildStatusEnum); }
public static BuildTransition GetBuildTransition(BuildStatusEnum buildStatusEnum) { BuildTransition buildTransition = null; switch(buildStatusEnum) { case BuildStatusEnum.Aborted: buildTransition = BuildTransition.Aborted; break; case BuildStatusEnum.Failed: buildTransition = BuildTransition.Failed; break; case BuildStatusEnum.Unstable: buildTransition = BuildTransition.Unstable; break; case BuildStatusEnum.Successful: buildTransition = BuildTransition.Successful; break; default: buildTransition = BuildTransition.Successful; break; } return buildTransition; }
public bool IsNewlyFixed(BuildStatusEnum? previousStatus) { return BuildStatusEnum == BuildStatusEnum.Working && previousStatus != null && previousStatus == BuildStatusEnum.Broken; }
private static DateTime? GetStartedTime(BuildStatusInfo buildStatusInfo, BuildStatusEnum buildStatusEnum, DateTime? lastBuildTime) { bool thisIsTheFirstBuild = buildStatusInfo.LastBuildStatusEnum == null; if (thisIsTheFirstBuild) { return lastBuildTime; } var lastBuildStatusEnum = buildStatusInfo.LastBuildStatusEnum.Value; // the build started since our last poll time so update the start time if (buildStatusEnum == BuildStatusEnum.InProgress && lastBuildStatusEnum != BuildStatusEnum.InProgress) { buildStatusInfo.StartedTime = DateTime.Now; } if (buildStatusInfo.StartedTime == null) return lastBuildTime; return buildStatusInfo.StartedTime; }
private BuildStatus CreateBuildStatus(IBuildDetail buildDetail, bool applyBuildQuality) { BuildStatusEnum status = BuildStatusEnum.Unknown; status = GetBuildStatusEnum(buildDetail.Status); if (applyBuildQuality && status == BuildStatusEnum.Working) { status = GetBuildStatusEnum(buildDetail.Quality); } var result = new BuildStatus { BuildDefinitionId = buildDetail.BuildDefinitionUri.Segments[buildDetail.BuildDefinitionUri.Segments.Length - 1].ToString(), BuildStatusEnum = status, RequestedBy = buildDetail.RequestedBy != null ? buildDetail.RequestedBy : buildDetail.RequestedFor != null ? buildDetail.RequestedFor : buildDetail.LastChangedBy, StartedTime = buildDetail.StartTime == DateTime.MinValue ? (DateTime?)null : buildDetail.StartTime, FinishedTime = buildDetail.FinishTime == DateTime.MinValue ? (DateTime?)null : buildDetail.FinishTime, }; if (buildDetail.BuildDefinition != null) { this._UriToName[buildDetail.BuildDefinitionUri.ToString()] = buildDetail.BuildDefinition.Name; } result.Name = this._UriToName[buildDetail.BuildDefinitionUri.ToString()]; result.BuildId = buildDetail.Uri.Segments[buildDetail.Uri.Segments.Length - 1].ToString(); var changesets = buildDetail.Information.GetNodesByType("AssociatedChangeset"); if (changesets.Count() > 0) { HashSet <String> users = new HashSet <String>(); foreach (var changeset in changesets) { users.Add(changeset.Fields["CheckedInBy"]); } if (users.Count() > 1) { result.RequestedBy = "(Multiple Users)"; } else { result.RequestedBy = users.First(); } if (changesets.Count() > 1) { result.Comment = "(Multiple Changesets)"; } else { result.Comment = changesets.First().Fields["Comment"]; } } else { result.Comment = buildDetail.Reason.ToString(); } if (applyBuildQuality && GetBuildStatusEnum(buildDetail.Quality) == BuildStatusEnum.Broken) { result.Comment = "Build deployment or test failure. Please see test server or test results for details.\n" + result.Comment; } result.Url = _tfsProject.ConvertTfsUriToUrl(buildDetail.Uri); return(result); }
private static void SetCheckinInfo(IBuildDetail buildDetail, bool applyBuildQuality, BuildStatus result, BuildStatusEnum buildQuality, MyTfsBuildDefinition buildDefinition) { var checkinInfoGetterService = new CheckinInfoGetterService(); var checkinInfo = checkinInfoGetterService.GetCheckinInfo(buildDetail, result, buildDefinition); if (checkinInfo != null) { result.Comment = checkinInfo.Comment; result.RequestedBy = checkinInfo.Committer; } if (applyBuildQuality && buildQuality == BuildStatusEnum.Broken) { result.Comment = "Build deployment or test failure. Please see test server or test results for details.\n" + result.Comment; } }
private bool TreatAsFailure(BuildStatusEnum status) { return status == BuildStatusEnum.Failed || (status == BuildStatusEnum.Unstable && ConfigurationService.NotificationSettings.TreatUnstableAsFailed); }
protected Color GetBackgroundColor(BuildStatusEnum buildStatusEnum) { return(GetColorForBuildType(_buildStatusToColorMap, buildStatusEnum, PrimaryColor)); }
public void FireAnyUntilBuildPassesEvents(RulesEngine rulesEngine, BuildStatus buildStatus, BuildStatusEnum? previousStatus) { bool newlyFixed = buildStatus.BuildStatusEnum == BuildStatusEnum.Working && previousStatus != null && previousStatus != BuildStatusEnum.Working; if (PlayAudio && PlayAudioUntilBuildPasses && newlyFixed) { rulesEngine.InvokeSetAudio(null, null); } if (PlayLights && PlayLightsUntilBuildPasses && newlyFixed) { rulesEngine.InvokeSetLights(null, null); } }
public void FireEvent(RulesEngine rulesEngine, BuildStatusEnum? previousStatus, BuildStatus buildStatus) { var newlyBroken = buildStatus.IsNewlyBroken(previousStatus); var newlyFixed = buildStatus.IsNewlyFixed(previousStatus); string message = null; string okText = null; if (newlyBroken) { message = "Build newly broken by " + buildStatus.RequestedBy; okText = "Rats"; } if (newlyFixed) { message = "Build is passing again"; okText = "Yayy!"; } if (buildStatus.BuildStatusEnum == BuildStatusEnum.InProgress) { message = "Build triggered by " + buildStatus.RequestedBy; okText = "Ok, whatever"; } if (buildStatus.BuildStatusEnum == BuildStatusEnum.Broken && !newlyBroken) { message = "Build still broken"; okText = "Rats"; } if (buildStatus.BuildStatusEnum == BuildStatusEnum.Working && !newlyFixed) { message = "Build passed"; okText = "Yayy!"; } message += " for " + buildStatus.Name; if (buildStatus.BuildStatusEnum == BuildStatusEnum.InProgress && !string.IsNullOrEmpty(buildStatus.Comment)) { message += "\r\n" + buildStatus.Comment; } if (AlertType == AlertType.TrayAlert && !(previousStatus == null && buildStatus.BuildStatusEnum == BuildStatusEnum.Working)) { rulesEngine.InvokeTrayNotify(buildStatus.BuildStatusEnum == BuildStatusEnum.Broken ? ToolTipIcon.Error : ToolTipIcon.Info, string.Format("Build {0}", buildStatus.BuildStatusDescription), message); } if (LedPattern != null) { rulesEngine.InvokeSetLights(LedPattern, LightsDuration); } if (AudioPattern != null) { rulesEngine.InvokeSetAudio(AudioPattern, AudioDuration); } if (AlertType == AlertType.ModalDialog) { rulesEngine.InvokeModalDialog(message, okText); } if (!string.IsNullOrEmpty(WindowsAudioLocation) && previousStatus != null) { rulesEngine.InvokePlayWindowsAudio(WindowsAudioLocation); } }
public BuildStatus(BuildStatusEnum value, bool isInProgress, bool isStuck) { this.Value = value; this.IsInProgress = isInProgress; this.IsStuck = isStuck; }
public static bool IsErrorBuild(BuildStatusEnum status) { return(status == BuildStatusEnum.Failed); }
public NewNewsItemEventArgs AsNewsItemEventArgs(BuildStatusEnum previousWorkingOrBrokenBuildStatus, SirenOfShameSettings settings) { var person = settings.FindAddPerson(RequestedBy); return new NewNewsItemEventArgs { Person = person, EventDate = DateTime.Now, Title = GetNewsItemTitle(previousWorkingOrBrokenBuildStatus), BuildDefinitionId = BuildDefinitionId, NewsItemType = GetNewsItemType(), ReputationChange = GetReputationChange(), BuildId = BuildId }; }
public void FireApplicableRulesEngineEvents(BuildStatusEnum? previousWorkingOrBrokenStatus, BuildStatusEnum? previousStatus, RulesEngine rulesEngine, List<Rule> rules) { var rule = rules .Where(r => r.IsMatch(this, previousWorkingOrBrokenStatus)) .OrderByDescending(r => r.PriorityId) .FirstOrDefault(); if (rule != null) rule.FireEvent(rulesEngine, previousWorkingOrBrokenStatus, this); rules.ForEach(r => r.FireAnyUntilBuildPassesEvents(rulesEngine, this, previousStatus)); }
protected Color GetBackgroundColor(BuildStatusEnum buildStatusEnum) { return GetColorForBuildType(BuildStatusToColorMap, buildStatusEnum, PrimaryColor); }
private static Color GetColorForBuildType(Dictionary<BuildStatusEnum, Color> dictionary, BuildStatusEnum newsItemEventType, Color defaultColor) { Color color; if (dictionary.TryGetValue(newsItemEventType, out color)) return color; return defaultColor; }
private string BuildStatusAsExport(BuildStatusEnum buildStatusEnum) { return(buildStatusEnum == BuildStatusEnum.Working ? "1" : "0"); }
private static Color GetColorForBuildType(Dictionary <BuildStatusEnum, Color> dictionary, BuildStatusEnum newsItemEventType, Color defaultColor) { Color color; if (dictionary.TryGetValue(newsItemEventType, out color)) { return(color); } return(defaultColor); }
public bool IsMatch(BuildStatus buildStatus, BuildStatusEnum? previousStatus) { bool isBuildDefinitionMatch = BuildDefinitionId == null || BuildDefinitionId == buildStatus.BuildDefinitionId; if (!isBuildDefinitionMatch) return false; bool isPersonMatch = string.IsNullOrEmpty(TriggerPerson) || TriggerPerson == buildStatus.RequestedBy; if (!isPersonMatch) return false; var newlyBroken = buildStatus.IsNewlyBroken(previousStatus); var newlyFixed = buildStatus.IsNewlyFixed(previousStatus); bool isTriggerTypeMatch = IsTriggerTypeMatch(buildStatus, newlyBroken, newlyFixed); return isTriggerTypeMatch; }
private void LoadIcon(BuildStatusEnum statusValue, bool isInProgress, bool isStuck) { BuildStatus status = new BuildStatus(statusValue, isInProgress, isStuck); if (iconsByKey.ContainsKey(status.Key)) return; try { string resourceName = string.Format("JenkinsTray.Resources.TrayIcons.{0}.ico", status.Key); Icon icon = ResourceImageHelper.CreateIconFromResources(resourceName, GetType().Assembly); iconsByKey.Add(status.Key, icon); } catch (Exception ex) { XtraMessageBox.Show(JenkinsTrayResources.FailedLoadingIcons_Text, JenkinsTrayResources.FailedLoadingIcons_Caption, MessageBoxButtons.OK, MessageBoxIcon.Error); LoggingHelper.LogError(logger, ex); throw new Exception("Failed loading icon: " + statusValue, ex); } }
// FIXME: the framework doesn't fire correctly MouseClick and MouseDoubleClick, // so this is deactivated private void notifyIcon_MouseClick(object sender, MouseEventArgs e) { if (e.Button != MouseButtons.Left) { return; } try { // order the projects by build status var projectsByStatus = new Dictionary <BuildStatusEnum, SortedSet <Project> >(); foreach (KeyValuePair <Project, AllBuildDetails> pair in lastProjectsBuildDetails) { BuildStatusEnum status = BuildStatusEnum.Unknown; if (pair.Value != null) { status = BuildStatusUtils.DegradeStatus(pair.Value.Status).Value; } SortedSet <Project> projects = new SortedSet <Project>(); if (projectsByStatus.TryGetValue(status, out projects) == false) { projects = new SortedSet <Project>(); projectsByStatus.Add(status, projects); } projects.Add(pair.Key); } StringBuilder text = new StringBuilder(); string prefix = null; foreach (KeyValuePair <BuildStatusEnum, SortedSet <Project> > pair in projectsByStatus) { // don't display successful projects unless this is the only status if (pair.Key == BuildStatusEnum.Successful || projectsByStatus.Count == 1) { continue; } if (prefix != null) { text.Append(prefix); } string statusText = JenkinsTrayResources.ResourceManager .GetString("BuildStatus_" + pair.Key.ToString()); text.Append(statusText); foreach (Project project in pair.Value) { text.Append("\n - ").Append(project.Name); BuildDetails lastFailedBuild = project.LastFailedBuild; if (lastFailedBuild != null && lastFailedBuild.Users != null && lastFailedBuild.Users.Count > 0) { string users = StringUtils.Join(lastFailedBuild.Users, ", "); text.Append(" (").Append(users).Append(")"); } } prefix = "\n"; } string textToDisplay = text.ToString(); if (string.IsNullOrEmpty(textToDisplay)) { textToDisplay = JenkinsTrayResources.DisplayBuildStatus_NoProjects; } notifyIcon.ShowBalloonTip(BALLOON_TOOLTIP_TIMEOUT, JenkinsTrayResources.DisplayBuildStatus_Caption, textToDisplay, ToolTipIcon.Info); } catch (Exception ex) { LoggingHelper.LogError(logger, ex); } }
private string BuildStatusAsExport(BuildStatusEnum buildStatusEnum) { return buildStatusEnum == BuildStatusEnum.Working ? "1" : "0"; }
private string GetNewsItemTitle(BuildStatusEnum previousWorkingOrBrokenBuildStatus) { var wasBrokenNowWorking = previousWorkingOrBrokenBuildStatus == BuildStatusEnum.Broken && BuildStatusEnum == BuildStatusEnum.Working; var wasBrokenNowBroken = previousWorkingOrBrokenBuildStatus == BuildStatusEnum.Broken && BuildStatusEnum == BuildStatusEnum.Broken; var wasWorkingNowBroken = previousWorkingOrBrokenBuildStatus == BuildStatusEnum.Working && BuildStatusEnum == BuildStatusEnum.Broken; var inProgress = BuildStatusEnum == BuildStatusEnum.InProgress; if (inProgress) return string.Format("'{0}'", Comment); if (wasBrokenNowWorking) return string.Format("Fixed the broken build"); if (wasWorkingNowBroken) return string.Format("Broke the build"); if (wasBrokenNowBroken) return string.Format("Failed to fix the build"); if (BuildStatusEnum == BuildStatusEnum.Working || BuildStatusEnum == BuildStatusEnum.Unknown) return string.Format("Successful build"); // some other previous status? this should never happen if (BuildStatusEnum == BuildStatusEnum.Broken) return string.Format("Broke the build"); throw new Exception("Unknown build status: " + BuildStatusEnum); }
private void LoadIcon(BuildStatusEnum statusValue, bool isInProgress, bool isStuck) { BuildStatus status = new BuildStatus(statusValue, isInProgress, isStuck); if (iconsByKey.ContainsKey(status.Key)) return; try { string resourceName = string.Format("Hudson.TrayTracker.Resources.StatusIcons.{0}.gif", status.Key); Image img = ResourceImageHelper.CreateImageFromResources(resourceName, GetType().Assembly); byte[] imgBytes = DevExpress.XtraEditors.Controls.ByteImageConverter.ToByteArray(img, ImageFormat.Gif); iconsByKey.Add(status.Key, imgBytes); } catch (Exception ex) { XtraMessageBox.Show(HudsonTrayTrackerResources.FailedLoadingIcons_Text, HudsonTrayTrackerResources.FailedLoadingIcons_Caption, MessageBoxButtons.OK, MessageBoxIcon.Error); LoggingHelper.LogError(logger, ex); throw new Exception("Failed loading icon: " + status, ex); } }
public static bool IsErrorBuild(BuildStatusEnum status) { return status == BuildStatusEnum.Failed; }
private DateTime? GetFinishedTime(BuildStatusInfo buildStatusInfo, BuildStatusEnum buildStatusEnum, DateTime? lastBuildTime) { if (buildStatusInfo.LastBuildStatusEnum == null) { return lastBuildTime; } var lastBuildStatusEnum = buildStatusInfo.LastBuildStatusEnum.Value; // the build stopped since our last poll time so update the finished time if (buildStatusEnum != BuildStatusEnum.InProgress && lastBuildStatusEnum == BuildStatusEnum.InProgress) { buildStatusInfo.FinishedTime = DateTime.Now; } if (buildStatusInfo.FinishedTime == null && buildStatusEnum != BuildStatusEnum.InProgress) return lastBuildTime; return buildStatusInfo.FinishedTime; }
private void SetBackgroundColors(BuildStatusEnum buildStatusEnum) { Color backgroundColor = GetBackgroundColor(buildStatusEnum); _projectName.BackColor = backgroundColor; _buildStatusIcon.BackColor = backgroundColor; _editRulesTop.BackColor = backgroundColor; _loading.BackColor = backgroundColor; }
public bool IsNewlyBroken(BuildStatusEnum? previousStatus) { return BuildStatusEnum == BuildStatusEnum.Broken && (previousStatus == null || previousStatus == BuildStatusEnum.Working); }