Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
[FIXED JENKINS-9442] don't send 'oh now you've broken xyz' notificati…
…on for builds which have improved from FAILURE to UNSTABLE
  • Loading branch information
kutzi committed Apr 19, 2011
1 parent 074db79 commit f10b481
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 3 deletions.
3 changes: 2 additions & 1 deletion src/main/java/hudson/plugins/im/IMPublisher.java
Expand Up @@ -11,6 +11,7 @@
import hudson.plugins.im.build_notify.DefaultBuildToChatNotifier;
import hudson.plugins.im.tools.BuildHelper;
import hudson.plugins.im.tools.ExceptionHelper;
import hudson.plugins.im.tools.BuildHelper.ExtResult;
import hudson.scm.ChangeLogSet;
import hudson.scm.ChangeLogSet.Entry;
import hudson.tasks.BuildStep;
Expand Down Expand Up @@ -275,7 +276,7 @@ public boolean perform(final AbstractBuild<?,?> build, final Launcher launcher,
notifyChats(build, buildListener);
}

if (BuildHelper.isStillFailureOrUnstable(build)) {
if (BuildHelper.isStillFailureOrUnstable(build) || BuildHelper.getExtendedResult(build) == ExtResult.NOW_UNSTABLE) {
if (this.notifySuspects) {
log(buildListener, "Notifying suspects");
final String message = getBuildToChatNotifier().suspectMessage(this, build, buildListener, false);
Expand Down
16 changes: 14 additions & 2 deletions src/main/java/hudson/plugins/im/tools/BuildHelper.java
Expand Up @@ -16,7 +16,12 @@ public class BuildHelper {
* @author kutzi
*/
public static enum ExtResult {
FIXED, SUCCESS, STILL_UNSTABLE("STILL UNSTABLE"), UNSTABLE,
FIXED, SUCCESS,
/**
* Marks a build which was previously a failure and is now 'only' unstable.
*/
NOW_UNSTABLE("NOW UNSTABLE"),
STILL_UNSTABLE("STILL UNSTABLE"), UNSTABLE,
STILL_FAILING("STILL FAILING"), FAILURE,
ABORTED, NOT_BUILT("NOT BUILT");

Expand Down Expand Up @@ -135,8 +140,15 @@ public static ExtResult getExtendedResult(AbstractBuild<?, ?> build) {

AbstractBuild<?, ?> previousBuild = getPreviousNonAbortedBuild(build);
if (result == Result.UNSTABLE) {
if (previousBuild != null && previousBuild.getResult() == Result.UNSTABLE) {
if (previousBuild == null) {
return ExtResult.UNSTABLE;
}


if (previousBuild.getResult() == Result.UNSTABLE) {
return ExtResult.STILL_UNSTABLE;
} else if (previousBuild.getResult() == Result.FAILURE) {
return ExtResult.NOW_UNSTABLE;
} else {
return ExtResult.UNSTABLE;
}
Expand Down
6 changes: 6 additions & 0 deletions src/test/java/hudson/plugins/im/tools/BuildHelperTest.java
Expand Up @@ -7,6 +7,7 @@
import static org.mockito.Mockito.when;
import hudson.model.FreeStyleBuild;
import hudson.model.Result;
import hudson.plugins.im.tools.BuildHelper.ExtResult;

import org.junit.Test;

Expand Down Expand Up @@ -105,5 +106,10 @@ public void testGetResultDescription() throws Exception {
when(build.getResult()).thenReturn(Result.SUCCESS);
// don't mark it as fixed:
assertEquals("SUCCESS", BuildHelper.getResultDescription(build));

// NOW UNSTABLE
when(previousBuild.getResult()).thenReturn(Result.FAILURE);
when(build.getResult()).thenReturn(Result.UNSTABLE);
assertEquals(ExtResult.NOW_UNSTABLE.toString(), BuildHelper.getResultDescription(build));
}
}

0 comments on commit f10b481

Please sign in to comment.