我正在尝试创建一个带有参数的jenkins管道作业。我希望参数有条件地显示。条件取决于对先前参数的选择。我试过Active choices插件。它允许我有条件地选择一个参数的值。我希望整个参数有条件地出现在UI中。这是可能与Jenkins管道文件?
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
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'中选择。最后但并非最不重要的一点是,不要忘记在“引用参数”中添加任何要用于条件的参数
2条答案
按热度按时间oyt4ldly1#
我不相信这是可能的。在声明式/脚本化管道的情况下,参数是“后处理”的,这意味着你看到的基本上是在以前的“运行/构建”中评估的。这就是为什么它需要在“使用参数构建”可用之前进行构建。
作为替代方案,(如果您使用脚本化/声明性管道)您可以使用Input步骤并使其有条件地触发。
示例摘自:https://support.cloudbees.com/hc/en-us/articles/204986450-Pipeline-How-to-manage-user-inputs
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'中选择。
最后但并非最不重要的一点是,不要忘记在“引用参数”中添加任何要用于条件的参数