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.