我在声明性 Jenkins 管道中使用带有 JSON 参数类型的扩展选择参数。我发现它非常适合为参数提供自定义 UI,它会根据用户输入返回一个 json。
我有一个用例,其中向用户显示的选项取决于另一个参数的值。我可以使用主动选择参数来实现这样的功能,但后来我被单选按钮、复选框、html 输入等卡住了。
我在这里找到了一个合适的选项,我可以在 json 中创建一个依赖于另一个属性的属性:
{
"title": "An object",
"type": "object",
"properties": {
"fieldOne": {
"title": "I should be changed to 'foo'",
"type": "string",
"enum": ["foo","bar"],
"default": "bar"
},
"depender1": {
"title": "I depend on fieldOne to be 'foo'",
"type": "string",
"enum": ["lorem","ipsum"],
"options": {
"dependencies": {
"fieldOne": "foo"
}
}
},
"depender2": {
"title": "I depend on fieldOne to be 'bar'",
"type": "string",
"enum": ["dolor", "sit"],
"options": {
"dependencies": {
"fieldOne": "bar"
}
}
}
}
}
但是当我在詹金斯上尝试同样的方法时,它不起作用。它显示了所有 3 个文本框。我也看到了查看其他参数的选项,但我找不到如何将它用作我的参数的 if else。
这是一个简单的例子,我想要实现的需要一个 dropdown-1 + Array(dropdown-2 + text field+text-field) 的 UI,其中数组的文本字段取决于 dropdown-1 的值,我无法创建主动选择中的相同 UI。
有谁知道 options.dependencies 可以在 jenkins 中如何工作,或者可以使用 watch/其他插件来实现?