Jenkins声明性管道并行阶段

时间:2017-07-25 05:45:24

标签: jenkins jenkins-pipeline

我知道我可以使用以下语法并行执行步骤。

pipeline {
  agent any
  stages {
    stage('Build') {
      steps {
        checkout scm
        echo 'Building'
      }
    }
    stage('Some Testing') {
      steps {
        parallel(
          "Step 1": {
            echo 'Step 1'

          },
          "Step 2": {
            echo 'Step 2'

          }
        )
      }
    }
    stage('Send Mail') {
      steps {
        echo "sending mail"
      }
    }
  }
}

我想在Build Overview中显示所有步骤,并将它们移动到各自的阶段,就像这样。

pipeline{
    agent any
    stages {
        stage('Build'){
            steps {
                checkout scm
                echo 'Building'
            }
        }
        parallel(
            stage('Step 1'){
                steps{
                    echo 'Step 1'
                }
            }
            stage('Step 2'){
                steps{
                    echo 'Step 2'
                }
            }
        )
        stage('Send Mail'){
            steps {
                echo "sending mail"
            }
        }
    }
}

如何实现这一目标,Jenkins文档中没有关于管道的良好提示。或者这是不可能的?

提前致谢=)

2 个答案:

答案 0 :(得分:4)

现在,从管道模型定义插件中的https://issues.jenkins-ci.org/browse/JENKINS-41334开始,描述的行为> = 1.2

答案 1 :(得分:2)

编辑:截至2017年10月,此答案已过时,请参阅@ r4d1um' s answer

截至目前,声明性管道不直接支持parallel步骤。这是(根据roadmap)目前正在开发中:

enter image description here

您必须在此处回退脚本管道,方法是将parallel步骤放入script { }块,或将其包装在函数中。