首页 > 解决方案 > 如何减少詹金斯管道脚本的长度?

问题描述

我使用管道脚本在参数匹配时并行构建作业,但对于每个参数,它并行构建多达 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'
            .
            .
            .
            .
            .
            }
      }
    }
}


标签: jenkinsjenkins-pipelinejenkins-groovy

解决方案


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

前任:

   def func() {
   }

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

推荐阅读