diff --git a/maven-plugin/src/main/java/hudson/maven/AbstractMavenBuild.java b/maven-plugin/src/main/java/hudson/maven/AbstractMavenBuild.java index 9f856abdde64198198cb867d1eca43de5ea629a6..f2c01f7b3f002e9286392d333cbca695fc1fa763 100644 --- a/maven-plugin/src/main/java/hudson/maven/AbstractMavenBuild.java +++ b/maven-plugin/src/main/java/hudson/maven/AbstractMavenBuild.java @@ -32,6 +32,7 @@ import hudson.model.Hudson; import hudson.model.Result; import hudson.model.Run; import hudson.model.Cause.UpstreamCause; +import hudson.tasks.BuildTrigger; import java.io.File; import java.io.IOException; @@ -41,7 +42,7 @@ import java.util.Set; public abstract class AbstractMavenBuild
,B extends AbstractMavenBuild
> extends AbstractBuild
{ /** - * Extra versbose debug switch. + * Extra verbose debug switch. */ public static boolean debug = false; @@ -59,11 +60,16 @@ public abstract class AbstractMavenBuild
,B e
/**
* Schedules all the downstream builds.
+ * Returns immediately if build result doesn't meet the required level
+ * (as specified by {@link BuildTrigger}, or {@link Result#SUCCESS} if none).
*
* @param listener
* Where the progress reports go.
*/
protected final void scheduleDownstreamBuilds(BuildListener listener) {
+ BuildTrigger bt = getParent().getPublishersList().get(BuildTrigger.class);
+ if (getResult().isWorseThan(bt!=null ? bt.getThreshold() : Result.SUCCESS)) return;
+
// trigger dependency builds
for( AbstractProject,?> down : getParent().getDownstreamProjects()) {
if(debug)
diff --git a/maven-plugin/src/main/java/hudson/maven/MavenBuild.java b/maven-plugin/src/main/java/hudson/maven/MavenBuild.java
index f25c0f0ed26ff31a8585a220fdf41d204147c6fe..c67ad8062f8a827a8dc082989e7fe580c4791112 100644
--- a/maven-plugin/src/main/java/hudson/maven/MavenBuild.java
+++ b/maven-plugin/src/main/java/hudson/maven/MavenBuild.java
@@ -226,6 +226,7 @@ public class MavenBuild extends AbstractMavenBuild