{ ... script { ....
if (isStartedByUser) {
try {
timeout(time: 60, unit: 'SECONDS') {
def userInput = input(
id: 'userInput', message: 'Please Enter Environment', parameters:
[choice(name: 'environment', choices: tf.join("\n"), description: 'Choose environment you want to deploy this build'),
choice(name: 'debuglevel', choices: "\nINFO\nTRACE\nDEBUG\nWARN\nERROR", description: 'Choose debug level')
]
)
mydir = userInput['environment']
здесь
У меня есть это в конвейере Дженкинса. tf — это список, импортированный из json. В настоящее время этот фрагмент кода позволяет выбрать только один вариант. Я хотел бы иметь возможность выбирать несколько вариантов для раскрывающегося списка среды.
Итак, теперь у меня есть это, и это работает! но нужна небольшая оптимизация:
def multiSelect= new ExtendedChoiceParameterDefinition("Envs",
"PT_MULTI_SELECT",
tf.join(","),
"project name",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
tf.join(","),
"",
"",
"",
"",
"",
"",
"",
"",
false,
false,
15,
"Available Environments",
",")
def userInput = input(
id: 'userInput', message: 'Please Select terraform params', parameters:
[multiSelect]
)
def userInput2 = input(
id: 'userInput', message: 'Please Select terraform params', parameters:
[choice(name: 'debuglevel', choices: "\nINFO\nTRACE\nDEBUG\nWARN\nERROR", description: 'Choose debug level')
]
)
terraformdir = userInput.split(',')
println "dir ${terraformdir}"
env.TF_LOG = userInput2['debuglevel']
Я надеялся получить оба входа на одном экране.
Когда я сделал
def userInput = input(
id: 'userInput', message: 'Please Select terraform params', parameters:
[multiSelect,
choice(name: 'debuglevel', choices: "\nINFO\nTRACE\nDEBUG\nWARN\nERROR", description: 'Choose debug level')
]
)
Я не был уверен, как получить доступ к значению multiSelect.
Да, у вас должно получиться, взгляните на пример здесь. Ниже приведен пример декларативного конвейера.
import com.cwctravel.hudson.plugins.extended_choice_parameter.ExtendedChoiceParameterDefinition
def multiSelect= new ExtendedChoiceParameterDefinition("name",
"PT_MULTI_SELECT",
"blue,green,yellow,blue",
"project name",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"blue,green,yellow,blue",
"",
"",
"",
"",
"",
"",
"",
"",
false,
false,
3,
"multiselect",
",")
pipeline {
agent any
stages {
stage('Hello') {
steps {
script {
def userInput = input id: 'customID', message: 'Let\'s promote?', ok: 'Release!', parameters: [multiSelect]
}
echo 'Hello World'
}
}
}
}
поэтому я обновил свой оригинальный комментарий. Я пытаюсь объединить вещи на 1 экране ввода.
Я понял. это был Envs (название мультиселекта. tyvm!
Вы можете увидеть доступные варианты для
input
шага. Вариант выбораextendedChoice
в сочетании с его конфигурациейMulti Select
должен дать вам то, что вам нужно.