Как передать параметр выбора для вызова работы внутри конвейера jenkins - PullRequest
0 голосов
/ 11 декабря 2018

Как я могу передать choice parameters для задания ниже по потоку при вызове внутри stage в конвейере jenkins?

Я пробовал следующие решения, но ни одно из них не работало:

stage('build job') {
    steps{
        script{
              build job: 'test',
                   parameters: [
                                choice(choices: "option1\noption2\noption3\n", description: '', name: 'choiceParam')
                                ] 
              }
     }
}

завершается с java.lang.UnsupportedOperationException: no known implementation of class hudson.model.ParameterValue is using symbol ‘choice’

Также пробовал:

 parameters:
   [
     [$class: 'ChoiceParameterValue', name: 'choiceParam', value: "1\n\2\n3\n"],
   ]

с ошибками java.lang.UnsupportedOperationException: no known implementation of class hudson.model.ParameterValue is named ChoiceParameterValue

Я действительно хочу передать параметр выбора как build parameter как«$ choiceParam» для value, чтобы я мог просто обновить конфигурацию задания jenkins, вместо того, чтобы всегда обновлять значения в сценарии конвейера

Может кто-нибудь помочь мне с этим

Спасибо

1 Ответ

0 голосов
/ 12 декабря 2018

Когда вы создаете задание с помощью шага Построение, вы его запускаете, поэтому вам нужно «выбрать» значение.

В этом случае вы должны передать желаемый выбор «String».Не список вариантов.то есть "1"

Мы создаем наш список параметров и затем передаем его. Итак: наша текущая работа имеет следующие входные параметры:

choice(name: 'ENV', choices: product, description: 'Env'),
choice(name: 'ENV_NO', choices: envParams(product), description: 'Env No'),

Мы передаем эти нисходящие потоки, устанавливая их:

List<ParameterValue> newParams = [
    new StringParameterValue('ENV', params.ENV),
    new StringParameterValue('ENV_NO', params.ENV_NO),
]
build(job: "job", parameters: newParams, propagate: false)
...