运行 在 Jenkinsfile 中一个并行块中的多个步骤

Running multiple steps in sequenze in one parallel block In Jenkinsfile

我正在尝试优化我的管道。我正在使用管道生成和部署一些文档。最后,我清除我的文档根目录并将新生成的文档写入文档根目录。我在几个阶段并行执行此操作。

o-----o-----o--+--o--+---+--o--+-----o
               |     |   |     |
               +--o--+   +--o--+
               |     |   |     |
               +--o--+   +--o--+

这是并行阶段的流水线摘录

stage("clear nfs directory") {
    steps {
        parallel(
            test: {
                sh "rm -rf /mnt/nfs/test/docs/$pipelineParams.groupname"
                sh "mkdir /mnt/nfs/test/docs/$pipelineParams.groupname"
            },
            rele: {
                sh "rm -rf /mnt/nfs/rele/docs/$pipelineParams.groupname"
                sh "mkdir /mnt/nfs/rele/docs/$pipelineParams.groupname"
            },
            prod: {
                sh "rm -rf /mnt/nfs/prod/docs/$pipelineParams.groupname"
                sh "mkdir /mnt/nfs/prod/docs/$pipelineParams.groupname"
            }
        )
    }
}

stage("copy generated docs to nfs directory") {
    steps {
        parallel(
            test: {
                dir("target/public") {
                    sh "cp -r * /mnt/nfs/test/docs/$pipelineParams.groupname"
                }
            },
            rele: {
                dir("target/public") {
                    sh "cp -r * /mnt/nfs/rele/docs/$pipelineParams.groupname"
                }
            },
            prod: {
                dir("target/public") {
                    sh "cp -r * /mnt/nfs/prod/docs/$pipelineParams.groupname"
                }
            }
        )
    }
}

由于清除和写入应该相互依赖,我想将管道重构为更顺序的设计(运行在较少并行的步骤中按顺序排列多个步骤)

o-----o-----o--+--o---o--+-----o
               |         |
               +--o---o--+
               |         |
               +--o---o--+

我不确定如何在同一个并行块中 运行 多个步骤...有人可以给我提示吗?谢谢大家

请参阅下面的参考资料,它将允许您在同一个并行块中 运行 多个步骤。
您将需要使用 sequential stages 这将给出以下输出:

o-----o-----o--+--o---o--+-----o
               |         |
               +--o---o--+
               |         |
               +--o---o--+
pipeline {
  agent { label 'master' }
  stages {
    stage('Build and Test') {
      parallel {
        stage("Build and Test Linux") {
          stages {
            stage("Build (Linux)") {
              agent any
              steps {
                echo "Inside for loop 1"
              }
            }
            stage("Test (Linux)") {
              agent any
              steps {
                echo "Inside for loop 2"
              }
            }
          }
        }
        stage("Build and Test Windows") {
          stages {
            stage("Build (Windows)") {
              agent any
              steps {
                echo "Inside for loop 3"
              }
            }
            stage("Test (Windows)") {
              agent any
              steps {
                echo "Inside for loop 4"
              }
            }
          }
        }
      }
    }
  }
}


有关更多信息,请参阅:- https://www.jenkins.io/blog/2018/07/02/whats-new-declarative-piepline-13x-sequential-stages/


下面link给出参考例子:
https://issues.jenkins.io/browse/JENKINS-55438