如何在 Jenkins 脚本管道中创建并行阶段?
How can I create parallel stages in Jenkins scripted pipeline?
我正在尝试在我的 Jenkins 管道代码中实现并行化,我可以在其中并行地 运行 两个阶段。我知道这在声明性管道中是可能的,但我使用的是脚本化管道。
我试图通过做这样的事情来实现这一点:
parallel(
stage('StageA') {
echo "This is branch a"
},
stage('StageB') {
echo "This is branch b"
}
)
当我 运行 this 和在 Blue ocean 中查看 this 时,这些阶段不会 运行 并行,而是 StageB 在 StageA 之后执行。
是否可以在脚本化的詹金斯管道中有并行阶段?如果可以,怎么做?
为脚本管道尝试此语法:
parallel(
"StageA": {
echo "This is branch a"
},
"StageB": {
echo "This is branch b"
}
)
Blue Ocean里面应该是这样的,这就是你所期待的吧?
如果你想在经典视图中查看阶段(和控制台输出),你可以像这样使用阶段:
parallel(
"StageA": {
stage("stage A") {
echo "This is branch a"
}
},
"StageB": {
stage("stage B") {
echo "This is branch b"
}
}
)
这对我有用
stage('Check code quality') {
parallel {
stage('Run prospector') {
when {
expression { params.SKIP_PROSPECTOR == false }
}
steps {
checkout scm
sh 'echo "Running prospector..."'
sh 'make dockerized-run-prospector'
}
}
stage('Run Tests') {
when {
expression { params.SKIP_TESTS == false }
}
steps {
checkout scm
sh 'echo "Running tests..."'
sh 'make dockerized-test'
}
}
}
}
这会在父阶段下并行运行阶段。
Jenkins blue 是这样显示的
我正在尝试在我的 Jenkins 管道代码中实现并行化,我可以在其中并行地 运行 两个阶段。我知道这在声明性管道中是可能的,但我使用的是脚本化管道。
我试图通过做这样的事情来实现这一点:
parallel(
stage('StageA') {
echo "This is branch a"
},
stage('StageB') {
echo "This is branch b"
}
)
当我 运行 this 和在 Blue ocean 中查看 this 时,这些阶段不会 运行 并行,而是 StageB 在 StageA 之后执行。 是否可以在脚本化的詹金斯管道中有并行阶段?如果可以,怎么做?
为脚本管道尝试此语法:
parallel(
"StageA": {
echo "This is branch a"
},
"StageB": {
echo "This is branch b"
}
)
Blue Ocean里面应该是这样的,这就是你所期待的吧?
如果你想在经典视图中查看阶段(和控制台输出),你可以像这样使用阶段:
parallel(
"StageA": {
stage("stage A") {
echo "This is branch a"
}
},
"StageB": {
stage("stage B") {
echo "This is branch b"
}
}
)
这对我有用
stage('Check code quality') {
parallel {
stage('Run prospector') {
when {
expression { params.SKIP_PROSPECTOR == false }
}
steps {
checkout scm
sh 'echo "Running prospector..."'
sh 'make dockerized-run-prospector'
}
}
stage('Run Tests') {
when {
expression { params.SKIP_TESTS == false }
}
steps {
checkout scm
sh 'echo "Running tests..."'
sh 'make dockerized-test'
}
}
}
}
这会在父阶段下并行运行阶段。
Jenkins blue 是这样显示的