I have a Jenkins job using the build flow plugin. A portion of it looks 
like the code below.

parallel (
   { ignore ( FAILURE ) { build ( "job1", BRANCH: params [ "BRANCH" ] ) } },
   { ignore ( FAILURE ) { build ( "job2", BRANCH: params [ "BRANCH" ] ) } }
)

I'd like to replace the BRANCH parameter with a call to a script so that 
I can use a fallback branch in some cases. Doing so seems fairly tricky 
but I think I got it working, sort of. The code now looks like this.

branchName = build.buildVariableResolver.resolve("BRANCH")
def chkbranch ( String product, String branch ) {
   def cmd = ["/bin/bash", "-c", "/home/jenkins/bin/chkbranch"+" 
"+product+" "+branch]  // Build the command string to run
   def ans = cmd.execute().text  // Run the command
   return "$ans"[0..-2]  // Chomp the answer before returning
}
parallel (
   { ignore ( FAILURE ) { build ( "job1", BRANCH: chkbranch ( "job1", 
branchName ) ) } }
   { ignore ( FAILURE ) { build ( "job2", BRANCH: chkbranch ( "job2", 
branchName ) ) } }
)

But this doesn't work. It throws a completely indecipherable Groovy 
error and I'm lost. But it does work if I remove the "parallel" 
grouping. Unfortunately, that extends the time to run the job excessively.

The error looks something like the following. Any ideas?

ERROR: Failed to run DSL Script
groovy.lang.MissingMethodException: No signature of method: 
Script1$_run_closure8.call() is applicable for argument types: 
(Script1$_run_closure9, Script1$_run_closure10, Script1$_run_closure11, 
Script1$_run_closure12, Script1$_run_closure13, Script1$_run_closure14, 
Script1$_run_closure15) values: [Script1$_run_closure9@9202ce0, 
Script1$_run_closure10@1f622ace, ...]
Possible solutions: doCall(), any(), any(), find(), grep(), dump()
        at 
org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:903)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:723)
        at 
groovy.lang.GroovyObjectSupport.invokeMethod(GroovyObjectSupport.java:44)
        at 
org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:45)
        at 
org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
        at 
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
        at Script1.run(Script1.groovy:30)
        at Script1$run.call(Unknown Source)
        at 
org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
        at Script1$run.call(Unknown Source)
        at 
com.cloudbees.plugins.flow.FlowDSL.executeFlowScript(FlowDSL.groovy:84)
        at 
com.cloudbees.plugins.flow.FlowRun$FlyweightTaskRunnerImpl.run(FlowRun.java:219)
        at hudson.model.Run.execute(Run.java:1759)
        at com.cloudbees.plugins.flow.FlowRun.run(FlowRun.java:155)
        at hudson.model.ResourceController.execute(ResourceController.java:89)
        at hudson.model.Executor.run(Executor.java:240)
        at hudson.model.OneOffExecutor.run(OneOffExecutor.java:43)
-- 
Dave Close
"Technology has the shelf life of a banana." - Scott McNealy

-- 
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].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/557B7E2B.8020505%40us.thalesgroup.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to