From 22f6e1655b33049c686a98988cac32947de0d27f Mon Sep 17 00:00:00 2001 From: farshidce Date: Thu, 24 Mar 2011 22:04:27 -0700 Subject: [PATCH] fix for JENKINS-5411 to send "still unstable" email instead of unstable for cases when the previous build is failed or aborted we should send a still unstable email instead of simply stable to fix this issue made change to iterate through all the previous builds and find out whether all the prev builds are "fail" or "abort" or not. --- .../plugins/content/BuildStatusContent.java | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/src/main/java/hudson/plugins/emailext/plugins/content/BuildStatusContent.java b/src/main/java/hudson/plugins/emailext/plugins/content/BuildStatusContent.java index 82f3d10f8..cdf920267 100644 --- a/src/main/java/hudson/plugins/emailext/plugins/content/BuildStatusContent.java +++ b/src/main/java/hudson/plugins/emailext/plugins/content/BuildStatusContent.java @@ -46,8 +46,29 @@ public

, B extends AbstractBuild> String g } } else if (buildResult == Result.UNSTABLE) { B prevBuild = build.getPreviousBuild(); - if (prevBuild != null && (prevBuild.getResult() == Result.UNSTABLE)) { - return "Still Unstable"; + if (prevBuild != null) { + if (prevBuild.getResult() == Result.UNSTABLE) { + return "Still Unstable"; + } else if (prevBuild.getResult() == Result.SUCCESS) { + return "Unstable"; + } else if (prevBuild.getResult() == Result.FAILURE || + prevBuild.getResult() == Result.ABORTED || + prevBuild.getResult() == Result.NOT_BUILT) { + //iterate through previous builds + //(fail_or_aborted)*--> unstable : return still unstable + //(fail_or_aborted)*--> unstable : return unstable + B previous = prevBuild.getPreviousBuild(); + while (previous != null) { + if (previous.getResult() == Result.SUCCESS) { + return "Unstable"; + } + if (previous.getResult() == Result.UNSTABLE) { + return "Still unstable"; + } + previous = previous.getPreviousBuild(); + } + return "Unstable"; + } } else { return "Unstable"; }