动态评估Jenkins管道构建参数中的默认值

动态评估Jenkins管道构建参数中的默认值,jenkins,jenkins-pipeline,jenkins-groovy,Jenkins,Jenkins Pipeline,Jenkins Groovy,在Jenkins声明性管道中,我们可以定义构建参数,如 pipeline { … parameters { string(name: 'PARAMETER', defaultValue: 'INITIAL_DEFAULT') choice(name: 'CHOICE', choices: ['THIS', 'THAT']) } … } 但是,只有在显示“生成参数”对话框后运行作业时,才会更新作业的参数定义。也就是说,当我将初始默认

在Jenkins声明性管道中,我们可以定义构建参数,如

pipeline {
    …
    parameters {
        string(name: 'PARAMETER', defaultValue: 'INITIAL_DEFAULT')
        choice(name: 'CHOICE', choices: ['THIS', 'THAT'])
    }
    …
}
但是,只有在显示“生成参数”对话框后运行作业时,才会更新作业的参数定义。也就是说,当我将初始默认值更改为其他值时,下一个构建仍将默认为初始默认值,并且只有之后的构建才会使用新值

选择中也存在同样的问题,而且问题更为严重,因为在启动构建时,字符串默认值很容易被覆盖,但是如果新选项不存在,则根本无法选择它

那么,有没有办法定义将在参数对话框之前执行的函数或表达式,以便从文件、全局设置中的变量或任何其他合适的外部配置中计算当前值

我记得过去在自由风格的工作中使用了一些插件,但是在搜索插件库时,我找不到任何提到如何将其用于管道的插件

我不太在乎相同的问题是否适用于添加和删除参数,因为这种情况很少发生。但是我们有一些默认值经常更改的参数,我们需要在第二天晚上获取更新的值。

事实证明,该参数确实与管道一起工作,并且配置可以由指令生成器生成。看起来像

extendedChoice(
    name: 'PARAMETER',
    type: 'PT_TEXTBOX',
    defaultPropertyFile: '/var/lib/jenkins/something.properties',
    defaultPropertyKey: 'parameter'
)
生成器中提供了更多选项

可以使用Groovy脚本获取全局环境变量