Ответ 1
Поскольку вы используете декларативные конвейеры, нам нужно будет сделать некоторые трюки. Обычно вы сохраняете возвращаемое значение со стадии ввода, например,
def returnValue = input message: 'Need some input', parameters: [string(defaultValue: '', description: '', name: 'Give me a value')]
Однако это не допускается непосредственно в декларативных шагах конвейера. Вместо этого нужно сделать шаг input
на шаге script
, а затем распространить значение в подходящее место (env
, похоже, работает хорошо, остерегайтесь того, что переменная подвергается остальной части конвейера, хотя).
pipeline {
agent any
stages {
stage("foo") {
steps {
script {
env.RELEASE_SCOPE = input message: 'User input required', ok: 'Release!',
parameters: [choice(name: 'RELEASE_SCOPE', choices: 'patch\nminor\nmajor', description: 'What is the release scope?')]
}
echo "${env.RELEASE_SCOPE}"
}
}
}
}
Обратите внимание, что если на шаге ввода есть несколько параметров, вход будет возвращать карту, и вам нужно использовать ссылки на карту, чтобы получить нужную запись. Из генератора фрагментов в Дженкинсе:
Если указан только один параметр, его значение станет значением шага ввода. Если указано несколько параметров, возвращаемое значение будет представлять собой карту, обозначенную именами параметров. Если параметры не запрашиваются, шаг не возвращается, если одобрен.