Take a look at src/test/groovy/com/cloudbees/plugins/flow/AbortTest.groovy - this should say that it is possible to do what you want :-)
On Tuesday, 29 October 2013 02:43:19 UTC-4, asmundo wrote: > > On Tue, Oct 29, 2013 at 4:16 AM, James Nord (jnord) > <[email protected]<javascript:> > > wrote: > >> The changes I have put in to support this are not in a release version >> of the buildflow – so you will need to download source and compile, or grab >> it from the Jenkins ci instance. >> > > I forgot to state that I am did this. Sorry about that. I am running: > > * 305af7f Merge pull request #37 from mattiasbpersson/master > * build-flow-plugin:0.11-SNAPSHOT > > I did very much like the groovy shell evaluation! > > Asmund > > > > > >> > **** >> >> ** ** >> >> /James**** >> >> ** ** >> >> *From:* [email protected] <javascript:> [mailto: >> [email protected] <javascript:>] *On Behalf Of *Åsmund Østvold >> *Sent:* 28 October 2013 17:34 >> >> *To:* [email protected] <javascript:> >> *Subject:* Re: build flow, early exit from parallel construct?**** >> >> ** ** >> >> Thank you James, **** >> >> ** ** >> >> I finally freed up some time and was able do a new stab at this. I have >> inlined some questions and feedback.**** >> >> ** ** >> >> On Fri, Oct 25, 2013 at 6:33 AM, James Nord (jnord) >> <[email protected]<javascript:>> >> wrote:**** >> >> KillRunningjobs is called internally if the flow is aborted (or one of >> the jobs is aborted).**** >> >> Internallyt this is handled by catching either (IIRC) a >> JobAborteException (or also an IOException).**** >> >> ** ** >> >> I did search for 10 minutes for "JobAborteException" or something close >> to this. But my Jenkins/Java knowledge is limite...**** >> >> **** >> >> The IOException will show a stack trace in your console output – wheres >> the jobAbortEx will just show “Aborted” (and the cause if you set one),** >> ** >> >> ** ** >> >> I did try the blow but was not able to abort flow job. Job 'pass' takes >> 20s and job 'fail' taks only 5s:**** >> >> ** ** >> >> parallel(**** >> >> { b = build("pass");**** >> >> if (b.getResult() == Result.FAILURE) {**** >> >> throw new java.io.IOException("foo")**** >> >> } },**** >> >> { b = build( "fail" );**** >> >> if (b.getResult() == Result.FAILURE) {**** >> >> throw new java.io.IOException("foo")**** >> >> }}**** >> >> )**** >> >> ** ** >> >> Console output:**** >> >> ** ** >> >> ** ** >> >> parallel {**** >> >> Schedule job fail <http://ao:8080/job/fail/>**** >> >> Schedule job pass <http://ao:8080/job/pass/>**** >> >> Build fail #40 <http://ao:8080/job/fail/40/> started**** >> >> Build pass #33 <http://ao:8080/job/pass/33/> started**** >> >> fail #40 <http://ao:8080/job/fail/40/> completed : FAILURE**** >> >> pass #33 <http://ao:8080/job/pass/33/> completed **** >> >> }**** >> >> ** ** >> >> I am probably doing something wrong but I am not able to see it. Any >> help would be appreciated. **** >> >> **** >> >> So just throw one of those. I guess I should add this to the >> extensions so you can just call ext.abortFlow(“Reason”) J**** >> >> ** ** >> >> With my limited understanding I believe this would be very good to have. >> If you add this could you consider adding something like:**** >> >> ** ** >> >> ext.failFlow(“Reason”)**** >> >> ** ** >> >> It should do the same was for abortFlow("foo") but fail the build. For my >> use case this would "keep" the overall status as if all the jobs in the >> parallel section had finished. To also cover 'UNSTABLE' and 'SUCCESS' could >> the generalisation be exposing something like:**** >> >> ** ** >> >> terminateFlow(Result r, String s)**** >> >> ** ** >> >> ?**** >> >> **** >> >> Also no need to check the string – check getResult() == Result.FAILURE >> or getResult().isWorseOrEqual(Result.FAILURE)**** >> >> ** ** >> >> Thanks for this. **** >> >> **** >> >> Asmund**** >> >> ** ** >> >> -- **** >> >> dyslectic**** >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Jenkins Users" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> For more options, visit https://groups.google.com/groups/opt_out.**** >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Jenkins Users" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> For more options, visit https://groups.google.com/groups/opt_out. >> > > -- You received this message because you are subscribed to the Google Groups "Jenkins Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
