From 5600aa9b44c887ad634a16aa80b6119c3a158cd0 Mon Sep 17 00:00:00 2001 From: mindless Date: Tue, 3 Nov 2009 04:02:35 +0000 Subject: [PATCH] [FIXED HUDSON-4739] Fixed "even if unstable" option for triggering other projects from a Maven type project; added unit test. git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@23455 71c3de6d-444a-0410-be80-ed276b4c234a --- .../java/hudson/maven/AbstractMavenBuild.java | 8 +- .../main/java/hudson/maven/MavenBuild.java | 6 +- .../hudson/maven/MavenModuleSetBuild.java | 8 +- .../java/hudson/tasks/BuildTriggerTest.java | 79 +++++++++++++++--- .../resources/hudson/tasks/maven-empty.zip | Bin 0 -> 382 bytes .../hudson/tasks/maven-test-failure.zip | Bin 0 -> 3040 bytes 6 files changed, 83 insertions(+), 18 deletions(-) create mode 100644 test/src/test/resources/hudson/tasks/maven-empty.zip create mode 100644 test/src/test/resources/hudson/tasks/maven-test-failure.zip diff --git a/maven-plugin/src/main/java/hudson/maven/AbstractMavenBuild.java b/maven-plugin/src/main/java/hudson/maven/AbstractMavenBuild.java index 9f856abdde..f2c01f7b3f 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 f25c0f0ed2..c67ad8062f 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 { /** * Backdoor for {@link MavenModuleSetBuild} to assign workspaces for modules. */ + @Override protected void setWorkspace(FilePath path) { super.setWorkspace(path); } @@ -255,6 +256,7 @@ public class MavenBuild extends AbstractMavenBuild { super(buildProxy); } + @Override public void executeAsync(final BuildCallable program) throws IOException { futures.add(Channel.current().callAsync(new AsyncInvoker(core,program))); } @@ -547,9 +549,9 @@ public class MavenBuild extends AbstractMavenBuild { reporter.end(MavenBuild.this,launcher,listener); } + @Override public void cleanUp(BuildListener listener) throws Exception { - if(getResult().isBetterOrEqualTo(Result.SUCCESS)) - scheduleDownstreamBuilds(listener); + scheduleDownstreamBuilds(listener); } } diff --git a/maven-plugin/src/main/java/hudson/maven/MavenModuleSetBuild.java b/maven-plugin/src/main/java/hudson/maven/MavenModuleSetBuild.java index 02c9e0785d..825d7bd0e4 100644 --- a/maven-plugin/src/main/java/hudson/maven/MavenModuleSetBuild.java +++ b/maven-plugin/src/main/java/hudson/maven/MavenModuleSetBuild.java @@ -234,6 +234,7 @@ public class MavenModuleSetBuild extends AbstractMavenBuild0) { @@ -608,9 +609,7 @@ public class MavenModuleSetBuild extends AbstractMavenBuild program) throws IOException { futures.add(Channel.current().callAsync(new AsyncInvoker(core,program))); } @@ -683,6 +683,7 @@ public class MavenModuleSetBuild extends AbstractMavenBuildgj z!s9c4mX#%*Oz_ptny**8{I2u03VRWbuQ@_eHx9gVYuG3>w~u`bE04wQNk<=D5w|^W zeCGSa-G?ih@A3UM;`yc%eyeg>w&1ckS}`Wym!-u?{_RhF8Si59DYN=mI#2gwN#9FT zzO;3}3yl!Jm8qlfV)}NcOS1|qo|#;6u+DtAP;#fS)SiNQ3!?WdI#c!aT$cQk%PXwn zB2|}e2xX~n(U#8JZLo6765Y)#wWm$z*nLmF@#N|0$1Cs1YB%NO34M4ip7Dt>z?+dt uoEcX*@d87PfdLp~3`-h8EO@A~LP9OHf`K8xo0SbD#|VT@Kw1r?oB;r2vXQ_5 literal 0 HcmV?d00001 diff --git a/test/src/test/resources/hudson/tasks/maven-test-failure.zip b/test/src/test/resources/hudson/tasks/maven-test-failure.zip new file mode 100644 index 0000000000000000000000000000000000000000..1f105f67f2a5f44cd6fc828e056d7de045123f51 GIT binary patch literal 3040 zcmWIWW@Zs#U|`^2aI;Oa&fB}{sX8MALkJTC13QB#LqUG7UPW$BXb2|*^X0$qyq?#+ z_X@3GVfe}@!q7YEY~Eo7ftL4`T-x6mGK*FyT@R|xTDqh&W%VmvrwyeAxeg8WzrG!v zu;tsrp!_#yw(n+Ey6P5sAjZgK>lXgg-NjYyh0fL!Iyu&P>^J&HwzN29fhy1hsmzzH*=cBN0+6B(rPF9j#88i0O}J+b+6d@zHVS z=cmEiS#c79(-OKE{LW1LdebgbGi7Gzl_fv6%bb0;YyN_-TJ^OyPtPA$I%-~Os3c?J z!8eI>L-P5MUtNb(YOZ=2@=L$*T&8X4FS+3ME#6)3uRXg~=gzz|;pp*>=QG&OKlXVw z;YPgWza=>zc>{m}%moZ!28NwBN!DNnlwbh{aB)$xJ~(vG{dwmlUXKV}+}b#y+Hw;! z^GMaphpaa%u`H2P1B5UP$S+DK)es4+hGdoHrIwItlsq1zGD=g5^9csg1+-XEA#7qv zYBAKI-?79RBsZM~8vF9pyLDE;$hHAuV)bS1KLtshDaOQ z9zN&%eEdUC=zCp1t##U4_u^>{U(IvpFKc`1>TP`XNK3=_)JdN(k8_?ndSM^5boB~L z*o;^2%-YF7I8`D1Mtq8dr7EyqN>UZV018qSsv#7mDr`m(m#V(vNL6@D1WSSA+YVUL zqL&4bR0T42@w-`TyMZZcHxOGwQxzd&ok}xvQbLL{)6-LnLV&3kk+wi~A*U_VUPHcS z0|A!m{f}H&d+i;j+bGr?IM{A!U}iO6G3dzsX2F|TOJ`nPw`_i|bH|%6TUbSG(`F}K zX!49&nh~kY?PEFNMdR6~>L-!q>b0|4mT!EveYsp!eo&LUTE4Z~^9kL|KLmNq4%Rco zv!=hhD0b4Rvg#;n>XHYqo|$>EIqzG?wLdFu&8%;W+O4ke2Y53wi8JG>oOprWXJ7!< zRSZiSK`eMx#R{paLMs@6$sJ?@uF@A`0t15p!&}Ehph1wb7^oeT@(F3@WI)zF1F9Wb zCKG7}ABq`Qkj;SRA|eeELNQ1bSb2l|0(K18AV_W^(l7}W!=kVn2Fq1M8Yz!roUgl*W9 zBx;&^2el31Vq(%IYMRnwfw&lK1|?}K8^a(9($og5hEbHJe&aEcP@2LltC7=`FDrTw uf_#n{>7gOOSO%4*h*-u|W+SJmB}5vJqXb8>la&or5DEaHKG4+JU>*Q~&rkgT literal 0 HcmV?d00001 -- GitLab