HiveBrain v1.2.0
Get Started
← Back to all entries
snippetMinor

How can I retrieve the execution status of parallel triggered child jobs to a pipeline script

Submitted by: @import:stackexchange-devops··
0
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.

Solution

Use 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.result

Code Snippets

def b = build('my-job-name', wait: true)

def r = b.result

Context

StackExchange DevOps Q#11625, answer score: 2

Revisions (0)

No revisions yet.