Hi, I'm trying to build a pipeline that in principle it sounds like it
should be very simple. I basically have a project that I want to build
and test for Ubuntu trusty and xenial. So basically I want to run them
in separate nodes (which will use Docker).
I want to visualize this in blueocean like this:
Checkout Build Test Deploy
O----------O--------O--------O
trusty trusty trusty trusty
O----------O--------O--------O
xenial xenial xenial xenial
But I can't nail it. TL;DR, is there any way to achieve this? If yes,
how? If not, is it planned? If yes, any ETAs?
Things that I tried:
I can run 2 "jobs" in different nodes completely in parallel, but then
stages inside the nodes are not visualized:
parallel(
'xenial': {
node {
stage("Setup") {
sh 'echo xenial setup'
}
stage("Build") {
sh 'echo xenial build'
}
}
},
'trusty': {
node {
stage("Setup") {
sh 'echo trusty setup'
}
stage("Build") {
sh 'echo trusty build'
}
}
}
)
This shows:
Parallel
O
xenial
O
trusty
If I add top-level stages outside of the node{}, then I get a closer
visualization, but then both track don't run completely in parallel:
stage ("Setup") {
parallel (
'xenial': {
node {
stage("Run") {
sh 'echo xenial setup'
}
}
},
'trusty': {
node {
stage("Run") {
sh 'echo trusty setup'
}
}
}
)
}
stage ("Build") {
parallel (
'xenial': {
node {
stage("Run") {
sh 'echo xenial build'
}
}
},
'trusty': {
node {
stage("Setup") {
sh 'echo trusty build'
}
}
}
)
}
And on top of not being really parallel, the synchronization points are
shown in the visualization (which makes sense if there are
synchronization points:
Checkout Build Test Deploy
O-----.--.------O-----.-.------O-----.-.------O
trusty | | trusty | | trusty | | trusty
| | | | | |
O----´ `-----O-----´ `-----O-----´ `------O
xenial xenial xenial xenial
So, questions again for the people that read this far :)
Is there any way to achieve this? If yes, how? If not, is it planned?
If yes, any ETAs?
Thanks a lot!
--
Leandro Lucarella
Technical Development Lead
Sociomantic Labs GmbH <
http://www.sociomantic.com>