I searched and experimented a lot, but couldn't find any working example of what I need.
I want to run 2 stages in parallel, each stage has several steps. And by parallel
I mean the stages themselves and their respective steps. All existing examples and topics I found relate to executing steps
in parallel inside a stage
.
I don't need that, I need to run 2 stages
alongside their steps
in parallel. Please look at this screenshot:
Current behavior is that Parent Stage 1 is executed and then Parent Stage 2 starts to execute.
Is it possible to run "Parent Stage 1" and "Parent Stage 2" in parallel?
You can use stages inside the parallel
block. eg
pipeline {
agent any
stages {
stage('Non Parallel Execution') {
steps {
sh 'echo step 1a'
sh 'echo step 2a'
sh 'echo step 3a'
}
}
stage('Parallel Execution') {
parallel {
stage('Parent A') {
steps {
sh 'echo step 1'
sh 'echo step 2'
}
}
stage('Parent B') {
steps {
sh 'echo step 3'
sh 'echo step 4'
}
}
}
}
}
}
src: https://jenkins.io/doc/book/pipeline/syntax/#parallel
If you're trying to have nested parallel execution instead, I'd suggest to read the answers to this question: Error: The parallel step can only be used as the only top-level step
The answer of @stefano is correct - use stages inside parallel although he didn't use it in his example. here is what I did:
pipeline {
agent { node {
label 'you node'
}}
stages {
stage ("Run Tests"){
parallel {
stage ("Run Parent 1 stages") {
stages {
stage("Parent 1 Stage 1") {
steps {
echo "Parent 1 stage 1"
}
}
stage("Parent 1 stage 2") {
steps {
echo "Parent 1 stage 2"
}
}
stage("Parent 1 stage 3") {
steps {
echo "Parent 1 stage 3"
}
}
}
}
stage ("Run Parent 2 stages") {
stages {
stage("Parent 2 stage 1") {
steps {
echo "Parent 2 stage 1"
}
}
}
}
}
}
}
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.