使用声明性语法时,是否有一种方法可以避免每个“何时”条件的单独阶段?

时间:2019-04-24 18:38:05

标签: jenkins-pipeline

有没有一种方法可以避免为每个条件“何时”语句创建一个单独的阶段?换句话说,在下面的示例中,除了一个参数外,两个分支的maven命令完全相同。

因此,有没有更简单的方法可以使一个名为“ maven build”的阶段具有基于正在构建的分支的条件执行。除了繁琐的重复之外,这样做的副作用是,在詹金斯,“舞台”观点变得越来越长。

       pipeline{
       :
       :
       stage('Maven Build (develop)'){
        when{
            branch 'develop'
        }
         steps {
                // Do these steps 
              }
          }

    stage('Maven Build (release)'){
        when{
            branch 'releases/**'
        }
          steps {
                // Do same steps as in the previous Maven Build but 
                // with a minor change. 
          }
        }
       }

1 个答案:

答案 0 :(得分:1)

pipeline {

    stage('Maven build') {
        steps {
            echo "Build on branch ${env.GIT_BRANCH}"
            // do the same steps

            script {
                if(env.GIT_BRANCH.startsWith("releases")) {
                    // do the diff steps only for non-develop branch
                }
            }
        }
    }
}