diff --git a/.gitignore b/.gitignore index 3448053..34fd116 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ work/ .project .settings/ +.idea/* diff --git a/src/main/java/com/flowdock/jenkins/BuildResult.java b/src/main/java/com/flowdock/jenkins/BuildResult.java index 7e61a38..8c8eed7 100644 --- a/src/main/java/com/flowdock/jenkins/BuildResult.java +++ b/src/main/java/com/flowdock/jenkins/BuildResult.java @@ -9,7 +9,8 @@ public enum BuildResult { UNSTABLE("was unstable"), ABORTED("was aborted"), NOT_BUILT("was not built"), - FIXED("was fixed"); + FIXED("was fixed"), + BROKEN("was broken"); private String humanResult; @@ -18,8 +19,9 @@ private BuildResult(String displayName) { } public static BuildResult fromBuild(AbstractBuild build) { + Result prevResult = build.getPreviousBuild() != null ? build.getPreviousBuild().getResult() : null; + if (build.getResult().equals(Result.SUCCESS)) { - Result prevResult = build.getPreviousBuild() != null ? build.getPreviousBuild().getResult() : null; if (Result.FAILURE.equals(prevResult) || Result.UNSTABLE.equals(prevResult)) { return FIXED; } @@ -31,6 +33,10 @@ public static BuildResult fromBuild(AbstractBuild build) { } else if (build.getResult().equals(Result.NOT_BUILT)) { return NOT_BUILT; } else { + if (!(Result.FAILURE.equals(prevResult) || Result.UNSTABLE.equals(prevResult))) { + return BROKEN; + } + return FAILURE; } } diff --git a/src/main/java/com/flowdock/jenkins/FlowdockNotifier.java b/src/main/java/com/flowdock/jenkins/FlowdockNotifier.java index 937cb1a..d290ebc 100644 --- a/src/main/java/com/flowdock/jenkins/FlowdockNotifier.java +++ b/src/main/java/com/flowdock/jenkins/FlowdockNotifier.java @@ -37,12 +37,13 @@ public class FlowdockNotifier extends Notifier { private final boolean notifyUnstable; private final boolean notifyAborted; private final boolean notifyNotBuilt; + private final boolean notifyBroken; // Fields in config.jelly must match the parameter names in the "DataBoundConstructor" @DataBoundConstructor public FlowdockNotifier(String flowToken, String notificationTags, String chatNotification, String notifySuccess, String notifyFailure, String notifyFixed, String notifyUnstable, - String notifyAborted, String notifyNotBuilt) { + String notifyAborted, String notifyNotBuilt, String notifyBroken) { this.flowToken = flowToken; this.notificationTags = notificationTags; this.chatNotification = chatNotification != null && chatNotification.equals("true"); @@ -53,6 +54,7 @@ public FlowdockNotifier(String flowToken, String notificationTags, String chatNo this.notifyUnstable = notifyUnstable != null && notifyUnstable.equals("true"); this.notifyAborted = notifyAborted != null && notifyAborted.equals("true"); this.notifyNotBuilt = notifyNotBuilt != null && notifyNotBuilt.equals("true"); + this.notifyBroken = "true".equals(notifyBroken); // set notification map this.notifyMap = new HashMap(); @@ -62,6 +64,7 @@ public FlowdockNotifier(String flowToken, String notificationTags, String chatNo this.notifyMap.put(BuildResult.UNSTABLE, this.notifyUnstable); this.notifyMap.put(BuildResult.ABORTED, this.notifyAborted); this.notifyMap.put(BuildResult.NOT_BUILT, this.notifyNotBuilt); + this.notifyMap.put(BuildResult.BROKEN, this.notifyBroken); } public String getFlowToken() { diff --git a/src/main/resources/com/flowdock/jenkins/FlowdockNotifier/config.jelly b/src/main/resources/com/flowdock/jenkins/FlowdockNotifier/config.jelly index 7b0fb73..05b0f67 100644 --- a/src/main/resources/com/flowdock/jenkins/FlowdockNotifier/config.jelly +++ b/src/main/resources/com/flowdock/jenkins/FlowdockNotifier/config.jelly @@ -30,6 +30,9 @@ + + +