Параметры задания сборки Jenkinsfile - PullRequest
0 голосов
/ 23 октября 2019

В jenkinsfile у меня есть около 10 заданий, и для каждого задания я передаю параметры, как показано ниже

stage('Test1 )
steps {
  script {
      echo 'Starting "test1"'
      build job: './test1
parameters: [
  [$class: 'StringParameterValue', name: 'INSTANCE_NAME', value: params.INSTANCE_NAME ],
  [$class: 'StringParameterValue', name: 'WORKSPACE', value: params.WORKSPACE ],
  [$class: 'StringParameterValue', name: 'APP_NAME', value: 'test' ],
  [$class: 'StringParameterValue', name: 'GIT_BRANCH', value: params.GIT_BRANCH ],
] } }
stage('Test2 )
steps {
  script {
      echo 'Starting "test2"'
      build job: './test2' ,
parameters: [
  [$class: 'StringParameterValue', name: 'INSTANCE_NAME', value: params.INSTANCE_NAME ],
  [$class: 'StringParameterValue', name: 'WORKSPACE', value: params.WORKSPACE ],
  [$class: 'StringParameterValue', name: 'APP_NAME', value: 'test' ],
  [$class: 'StringParameterValue', name: 'GIT_BRANCH', value: params.GIT_BRANCH ],
] } }

Есть ли способ определить этот раздел снаружи и использовать его для перехода к заданиям

Я пытаюсь выполнить один и тот же запрос @ Передать (одинаковые) параметры для нескольких заданий сборки в конвейере Jenkins

Спасибо

1 Ответ

0 голосов
/ 23 октября 2019

Мы могли бы передать карту с параметрами для создания задания

def jobParameters = [:]
jobParameters['INSTANCE_NAME'] = params.INSTANCE_NAME
jobParameters['WORKSPACE'] = params.WORKSPACE
def paramsObjects = []
jobParameters.each {
  key, value ->
    paramsObjects.push([$class: 'StringParameterValue', name: key, value: value])
}    

paramsObjects выглядело бы так:

[
    [$class:StringParameterValue, name:param1, value:value1],
    [$class:StringParameterValue, name:param2, value:value2]
]

Конфигурация этапа будет выглядеть так:

     stages {
        stage('Test1')
        steps {
            script {
                echo 'Starting "test1"'
                build job: './test1'
                parameters:
                paramsObjects
            }
        }
        stage('Test2')
        steps {
            script {
                echo 'Starting "test2"'
                build job: './test2',
                        parameters: paramsObjects
            }
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...