jenkins 如何有条件地隐藏参数?

h5qlskok  于 2023-04-20  发布在  Jenkins
关注(0)|答案(2)|浏览(543)

我正在尝试创建一个带有参数的jenkins管道作业。我希望参数有条件地显示。条件取决于对先前参数的选择。
我试过Active choices插件。它允许我有条件地选择一个参数的值。我希望整个参数有条件地出现在UI中。
这是可能与Jenkins管道文件?

oyt4ldly

oyt4ldly1#

我不相信这是可能的。在声明式/脚本化管道的情况下,参数是“后处理”的,这意味着你看到的基本上是在以前的“运行/构建”中评估的。这就是为什么它需要在“使用参数构建”可用之前进行构建。
作为替代方案,(如果您使用脚本化/声明性管道)您可以使用Input步骤并使其有条件地触发。

if ( x == true ) {
    def userInput = input(
       id: 'userInput', message: 'Let\'s promote?', parameters: [
       [$class: 'TextParameterDefinition', defaultValue: 'uat', description: 'Environment', name: 'env'],
       [$class: 'TextParameterDefinition', defaultValue: 'uat1', description: 'Target', name: 'target']
    ])
}

示例摘自:https://support.cloudbees.com/hc/en-us/articles/204986450-Pipeline-How-to-manage-user-inputs

9njqaruj

9njqaruj2#

我可以有条件地让它出现在Jenkins的UI参数中
我需要1个插件,主动选择参数,如果想有更强大的条件也可以使用scriptler

在Jenkins配置中,您应该选择(Active Choices Reactive Reference Parameter)x1c 0d1x
在下图中,您可以看到整个配置

Name =参数的名称。
Groovy script = script在groovy语言中,你可以使用它来隐藏或不依赖于任何先前的参数,在示例图像中,你可以看到我的条件依赖于一个名为'teamType'的参数。我隐藏或显示参数的方式是使用HTML代码,并允许Jenkins渲染HTML代码,你需要在'Choice Type' -〉'Formatted HTML'中选择。
最后但并非最不重要的一点是,不要忘记在“引用参数”中添加任何要用于条件的参数

相关问题