Как установить выбор по умолчанию в трубе дженкинсов?
довольно расстраивает, я не могу найти пример этого. Как установить выбор по умолчанию?
parameters {
choice(
defaultValue: 'bbb',
name: 'param1',
choices: 'aaa\nbbb\nccc',
description: 'lkdsjflksjlsjdf'
)
}
defaultValue здесь недопустимо. Я хочу, чтобы выбор был необязательным, а значение по умолчанию устанавливалось, если конвейер запускается не вручную (посредством фиксации).
Ответы
Ответ 1
Вы не можете указать значение по умолчанию в опции. Согласно документации для ввода choice
, первым вариантом будет значение по умолчанию.
Возможные варианты, по одному на линию. Значение по первой строке будет по умолчанию.
Это можно увидеть в источнике документации, а также о том, как он вызывается в исходном коде.
return new StringParameterValue(
getName(),
defaultValue == null ? choices.get(0) : defaultValue, getDescription()
);
Ответ 2
Как заявляет mkobit, это кажется невозможным с параметром defaultValue
, вместо этого я переупорядочил список вариантов на основе предыдущего выбора
defaultChoices = ["foo", "bar", "baz"]
choices = createChoicesWithPreviousChoice(defaultChoices, "${params.CHOICE}")
properties([
parameters([
choice(name: "CHOICE", choices: choices.join("\n"))
])
])
node {
stage('stuff') {
sh("echo ${params.CHOICE}")
}
}
List createChoicesWithPreviousChoice(List defaultChoices, String previousChoice) {
if (previousChoice == null) {
return defaultChoices
}
choices = defaultChoices.minus(previousChoice)
choices.add(0, previousChoice)
return choices
}