Как уменьшить длину конвейерного скрипта jenkins? - PullRequest
0 голосов
/ 29 мая 2019

Я использую конвейерный сценарий для параллельного создания заданий при совпадении параметров, но для каждого параметра он создает до 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 Ответ

1 голос
/ 29 мая 2019

Попробуйте извлечь общие части по шагам и определить методы в файле jenkinsfile.Методы, определенные в jenkinsfile A, также можно вызывать в jenkinsfile B в том же проекте.

ex:

   def func() {
   }

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