如何减少詹金斯管道脚本的长度?

时间:2019-05-29 07:07:25

标签: jenkins jenkins-pipeline jenkins-groovy

我正在使用管道脚本在参数匹配时并行构建作业,但是对于每个参数,它并行构建多达10到15个作业,因此代码的长度接近450行。是减少代码的任何方式还是配置和构建作业的任何其他方式?

#!/usr/bin/env groovy

pipeline {

agent any

    parameters {

        choice(
                choices: 'Job1\nJob2'\nJob3,
                description: '',
                name: 'Project'
        )
    }
 stages {
       stage ('callJob1') {

        when {
             expression { params.Project == 'Job1' }
        }
        steps{
            build job: 'test1'
            build job: 'test2'
            .
            .
            .
            .
            .
            }
        }    
      stage('callJob2'){

      when{
            expression { params.Project == 'Job2'}
      }
      steps{
            build job: 'test3'
            build job: 'test4'
            .
            .
            .
            .
            .
            }
      }
      stage('callJob3'){

      when{
            expression { params.Project == 'Job3'}
      }
      steps{
            build job: 'test5'
            build job: 'test6'
            .
            .
            .
            .
            .
            }
      }
    }
}


1 个答案:

答案 0 :(得分:1)

尝试逐步提取通用部分,并在jenkinsfile中定义方法。也可以在同一项目的jenkinsfile B中调用jenkinsfile A中定义的方法。

例如:

   def func() {
   }

   .
   .
   stages {
       stage('Job1'){
           steps {
               script {
                   func()
               }
           }
       }
       stage('Job2'){
           steps {
               script {
                   func()
               }
           }
       }
   }