如何在jenkins管道中设置默认选项?

时间:2017-12-18 17:20:32

标签: jenkins jenkins-plugins jenkins-pipeline

非常令人沮丧我无法找到这样的例子。如何设置默认选项?

parameters {
    choice(
        defaultValue: 'bbb',
        name: 'param1',
        choices: 'aaa\nbbb\nccc',
        description: 'lkdsjflksjlsjdf'
    )
}

defaultValue在这里无效。我希望选择是可选的,如果管道是非手动运行的(通过提交),则需要设置默认值。

2 个答案:

答案 0 :(得分:20)

您无法在选项中指定默认值。根据{{​​1}}输入的文档,第一个选项将是默认选项。

  

潜在的选择,每行一个。第一行的值将是默认值。

您可以在documentation source中看到这一点,以及source code中如何调用它。

choice

答案 1 :(得分: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
}