snippetMinor
How can I retrieve the execution status of parallel triggered child jobs to a pipeline script
Viewed 0 times
scriptcanthepipelinestatusretrievejobsparallelchildhow
Problem
I have a pipeline script that executes child jobs in parallel.
Say I have 5 data (a,b,c,d,e) that has to be executed on 3 jobs (J1, J2, J3)
My pipeline script is in the below format
for (int i = 0; i < size; i++) {
def index = i
branches["branch${i}"] = {
build job: 'SampleJob', parameters: [
string(name: 'param1', value:'${data}'),
string(name:'dummy', value: "${index}")]
}
}
parallel branches
My problem is, say the execution is happening on Job 1 with the data 1,2,3,4,5 and if the data 3 execution is failed on Job 1 then the data 3 execution should be stopped there itself and should not happen on the subsequent parallel execution on Jobs 2 and 3.
Is there any way that I can read the execution status of parallelly execution job status on the Pipeline script so that I can restrict data 3 execution to block in Jobs 2 and 3.
I am quite blocked here for a long time. Hoping for a solution from my community. Thanks a lot in advance.
Say I have 5 data (a,b,c,d,e) that has to be executed on 3 jobs (J1, J2, J3)
My pipeline script is in the below format
for (int i = 0; i < size; i++) {
def index = i
branches["branch${i}"] = {
build job: 'SampleJob', parameters: [
string(name: 'param1', value:'${data}'),
string(name:'dummy', value: "${index}")]
}
}
parallel branches
My problem is, say the execution is happening on Job 1 with the data 1,2,3,4,5 and if the data 3 execution is failed on Job 1 then the data 3 execution should be stopped there itself and should not happen on the subsequent parallel execution on Jobs 2 and 3.
Is there any way that I can read the execution status of parallelly execution job status on the Pipeline script so that I can restrict data 3 execution to block in Jobs 2 and 3.
I am quite blocked here for a long time. Hoping for a solution from my community. Thanks a lot in advance.
Solution
Use the
This was already asked and has an answer over on StackOverflow. Additionally, this is hinted at in the official build step documentation in the description for the
result property of object returned from the build step.This was already asked and has an answer over on StackOverflow. Additionally, this is hinted at in the official build step documentation in the description for the
propagate parameter ("use the result property of the return value as needed"). I haven't tested it as I don't have a test Jenkins instance available right now, but based on those two pieces of information it looks like something like this should do the trick:def b = build('my-job-name', wait: true)
def r = b.resultCode Snippets
def b = build('my-job-name', wait: true)
def r = b.resultContext
StackExchange DevOps Q#11625, answer score: 2
Revisions (0)
No revisions yet.