使用 Active Choice Reactive Reference Parameter 构建项目

Building project with Active Choice Reactive Reference Parameter

我是 jenkins 和 groovy 的新手,我正在尝试创建我自己的配置,它允许我使用各种参数构建我的项目。为此,我使用了 Active Choices Reactive Reference Parameter。作为选择类型,我设置 "Formatted HTML"。它看起来完全符合我的要求,但不幸的是,无论如何,我无法 return 构建参数。

这是我的 groovy 脚本:

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

谁能帮我解决这个问题?

将您的 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()
def defaultName = "default name"
if (useDefaultValues.equals("YES")) {
    return "<input type=\"text\" name=\"value\" value=\"${defaultName}\" />"
}
return "<input name=\"value\" type=\"text\">"

检查 "Omit value field" 已修复的逗号问题。(comma issue)