Jenkins 管道 - 并行阶段仅在最后阶段合并

Jenkins pipeline - parallel stages merging only at the last stage

在问这个问题之前,我试着查看了 Jenkins 管道文档,更重要的是 issue JENKINS-38442

我想创建一个如下所示的管道:

基本上,我希望并行阶段在不同阶段合并,而不是下一阶段本身。这可能吗?

到目前为止我能做的最好的就是这个:

下面是生成上述管道的管道代码:

node {
   def staticTests = [:]
   staticTests["unit tests"] = {stage('unit'){ }}
   staticTests["static analysis"] = {stage('static'){ }}

   def tests = [:]
   tests["functional"] = {stage('functional'){}}
   tests["performance"] = {stage('performance'){}}
   tests["security"] = {stage('security'){}}

   stage('prepare'){}
   stage('tests'){parallel(staticTests)}
   stage('build'){}
   stage('int'){}
   stage('regression'){}
   stage('qa'){}
   stage('tests'){ parallel(tests) }
   stage('prod'){}
}

哪些更改将帮助我根据上面粘贴的修改后的屏幕截图中的需要创建管道?这在今天使用 Jenkins 管道是否可行?预先感谢您的帮助!

你可以写

node {
  stage('prepare') {}
  parallel main: {
    stage('unit tests') {}
    stage('build') {}
    stage('int') {}
    stage('regression') {}
    stage('qa') {}
    parallel functional: {}, performance: {}, security: {}
  }, 'static analysis': {}
  stage('prod') {}
}

这将 运行 按照您要求的方式(如果我理解正确的话),但 Blue Ocean 目前无法以适当的详细程度显示它,如 JENKINS-38442 所述。