1

在问这个问题之前,我尝试查看 Jenkins 管道文档,更重要的是查看问题 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 流水线是否可行?提前感谢您的帮助!

4

1 回答 1

1

那么你可以写

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 中所述。

于 2016-12-14T21:23:59.257 回答