Как установить выбор по умолчанию в трубе дженкинсов?

довольно расстраивает, я не могу найти пример этого. Как установить выбор по умолчанию?

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
}