Hi,
I have 3 jobs: A, B and C in stage 1 to be run in parallel and two jobs: X and Y in stage 2. I would like to kickoff job X as soon as jobs A and B complete and kickoff job Y as soon as jobs B and C complete. I found a similar question on stackoverflow:
which mentions a possible enhancement to build-flow plugin but it doesn't seem to be implemented yet:
parallel( [
a: { build("TGZ", subjob: "T1") },
b: { build("TGZ", subjob: "T2") },
c: { build("TGZ", subjob: "T3") }
])
.on( jobs[a].completed && jobs[b].completed ) { build(x) }
.on( jobs[b].completed && jobs[c].completed ) { build(y) }
Is something like above possible with workflow-plugin. If not, are there plans to support such a feature?
A support for an async job model would make it very flexible to define workflows with complex dependencies:
async a: {
// code for job A
}, b: {
// code for job B
}, c: {
// code for job C
}
async x: {
waitUntil { // job A and job B completes }
// code for job X
}, y: {
waitUntil { // job B and job C completes with success or failure result}
// code for job Y
}
Thanks,
Hemang.