使用主动选择反应式参考参数构建项目

时间:2018-08-13 07:21:03

标签: jenkins groovy jenkins-groovy

我是jenkins和groovy的新手,我正在尝试创建自己的配置,该配置允许我使用各种参数构建项目。为此,我使用Active Choices反应参考参数。作为选择类型,我设置了“格式化HTML”。它看起来完全符合我的要求,但不幸的是,没有其他内容,我无法返回要构建的参数。

这是我的常规脚本:

if(useDefaultValues.equals("YES")) {
    return "defaultName"
 } else {
    inputBox = "<input name='name' class='setting-input' type='text'>"
    return inputBox
 }

This is how my configuration looks

Build with default parameters

Build with other parameters

有人可以帮我吗?

2 个答案:

答案 0 :(得分:3)

将您的Groovy脚本更新为以下内容:

def defaultName = "default name"

if (useDefaultValues.equals("YES")) {
    return "<b>${defaultName}</b><input type=\"hidden\" name=\"value\" value=\"${defaultName}\" />"
 }

return "<input name=\"value\" class=\"setting-input\" type=\"text\">"

输入字段使用名称value是很重要的-它不会更改参数名称,如果您将其命名为name,则可以使用$name的方式访问它(如果例如,您使用Groovy。

将默认值作为隐藏的输入字段进行传递也很重要,否则将不会设置参数值。此隐藏的输入还必须使用名称value

但是,HTML格式的输入参数存在一个奇怪的问题-它总是在参数值的末尾添加,。因此,例如,如果我通过lorem ipsum,则当我使用参数$name读取它时,我将得到lorem ipsum,。似乎将其视为多个参数或其他内容。要从参数中提取纯净值,您可以执行类似(Groovy代码)的操作:

name.split(',').first()

答案 1 :(得分:0)

def defaultName = "default name"
if (useDefaultValues.equals("YES")) {
    return "<input type=\"text\" name=\"value\" value=\"${defaultName}\" />"
}
return "<input name=\"value\" type=\"text\">"

检查“忽略值字段”固定逗号问题。(comma issue