在并行阶段之前的 jenkins 声明性管道中创建顺序步骤
Creating a sequential step in a jenkins declarative pipeline preceding a parallel stage
我想按照图片中的描述设置并行阶段
在这种情况下,设置非常繁重,因此必须在 G1、G2 和 G3 的并行组开始之前完成一次。同时,阶段:初始检查有 2 个项目,我想 运行 并行。
这在声明式管道中是否可行,还是我必须求助于脚本?
我在文档中看不到它的工作能力
Stages {
stage ('P1') {
}
stage ('P2 Setup') {}
stage ('P2') {
//Here it can contain either Steps or Parallel. I can only do
parallel {
stage ('g1') {} //Parallel tests
stage ('g2') {}
stage ('g3') {}
}
}
stage ('P2 Cleanup') {}
}
您遇到过类似的情况吗?您的解决方案是怎样的?
当然 1 解决方案是将设置和清理作为每个组的一部分,但就像我说的那样,它非常密集,只有在图表指示不可能的情况下我才会接受它。
解决方案 2
stage ('p2') {
script {
//Some scripting here to get the result?
}
}
Pipeline
我想你正在找这个
node {
stage("P1"){}
stage("p2") {}
stage("p3") {
parallel (
"firstTask" : {
},
"secondTask" : {
}
)
}
}
DSL 或声明式管道尚不支持此功能。您实际上是在寻找 嵌套 并行阶段,如前所述 here
Jenkins 社区的问题仍未解决,您可以观看 here
在您给定的情况下,您可以同时启动 P1 阶段和 setup 阶段。但是,将 P1 作为后台进程启动很重要,因为从图中可以看出 P1 是一项耗时的操作。一旦 group 阶段完成,您可以收集 P1 的状态并继续 S2.
stages{
stage('Build'){
steps{
echo "Build"
}
}
stage('Init'){
parallel{
stage('P1'){steps{ echo "launch p1 in background"}}
stage('setup'){steps{echo "setup"}}
}
}
stage('Group'){
parallel{
stage('P1'){steps{echo "p1"}}
stage('P2'){steps{echo "p2"}}
stage('P3'){steps{echo "p3"}}
}
}
stage('Cleanup'){
steps{
echo "cleanup"
}
}
stage('Check P1 status'){
steps{
echo "Check"
}
}
stage('S2'){
steps{
echo "S2"
}
}
}
我想按照图片中的描述设置并行阶段
在这种情况下,设置非常繁重,因此必须在 G1、G2 和 G3 的并行组开始之前完成一次。同时,阶段:初始检查有 2 个项目,我想 运行 并行。
这在声明式管道中是否可行,还是我必须求助于脚本?
我在文档中看不到它的工作能力
Stages {
stage ('P1') {
}
stage ('P2 Setup') {}
stage ('P2') {
//Here it can contain either Steps or Parallel. I can only do
parallel {
stage ('g1') {} //Parallel tests
stage ('g2') {}
stage ('g3') {}
}
}
stage ('P2 Cleanup') {}
}
您遇到过类似的情况吗?您的解决方案是怎样的?
当然 1 解决方案是将设置和清理作为每个组的一部分,但就像我说的那样,它非常密集,只有在图表指示不可能的情况下我才会接受它。
解决方案 2
stage ('p2') {
script {
//Some scripting here to get the result?
}
}
Pipeline
我想你正在找这个
node {
stage("P1"){}
stage("p2") {}
stage("p3") {
parallel (
"firstTask" : {
},
"secondTask" : {
}
)
}
}
DSL 或声明式管道尚不支持此功能。您实际上是在寻找 嵌套 并行阶段,如前所述 here
Jenkins 社区的问题仍未解决,您可以观看 here
在您给定的情况下,您可以同时启动 P1 阶段和 setup 阶段。但是,将 P1 作为后台进程启动很重要,因为从图中可以看出 P1 是一项耗时的操作。一旦 group 阶段完成,您可以收集 P1 的状态并继续 S2.
stages{
stage('Build'){
steps{
echo "Build"
}
}
stage('Init'){
parallel{
stage('P1'){steps{ echo "launch p1 in background"}}
stage('setup'){steps{echo "setup"}}
}
}
stage('Group'){
parallel{
stage('P1'){steps{echo "p1"}}
stage('P2'){steps{echo "p2"}}
stage('P3'){steps{echo "p3"}}
}
}
stage('Cleanup'){
steps{
echo "cleanup"
}
}
stage('Check P1 status'){
steps{
echo "Check"
}
}
stage('S2'){
steps{
echo "S2"
}
}
}