我在声明性Jenkins管道中使用带有JSON参数类型的extended choice parameter。我发现为参数提供自定义UI非常好,它会根据用户输入返回json。
我有一个用例,其中向用户显示哪些选项取决于另一个参数的值。我可以使用active choice parameter来实现这种功能,但后来我陷入了单选按钮,复选框,html输入等的问题。
我找到了一个合适的选项here,在其中我可以使json内部的属性依赖于另一个属性:
bigDF <- tribble(
~Species, ~Site, ~Present, ~Lookup,
"A", "A1", 1, "Aa1",
"A", "A2", 0, "Ab2",
"A", "A3", 1, "Aa3",
"A", "A4", 1, "Aa4",
"A", "A4.2", 1, "Aa4",
"B", "B1", 0, "Bb1",
"B", "B2", 0, "Bb2",
"B", "B3", 0, "Bb3",
"B", "B4", 1, "Bb4",
"B", "B1.1", 1, "Bb1",
"B", "B2.1", 0, "Bb2")
lookupDF <- tribble(
~Lookup, ~Val,
"Aa1", 12,
"Ab2", 15,
"Aa3", 18,
"Aa4", 101,
"Bb1", 60,
"Bb2", 75,
"Bb3", 89,
"Bb4", 3)
当我尝试here
但是当我在詹金斯上尝试相同的方法时,它不起作用。它显示所有3个文本框。我也看到了观看其他参数的选项,但是我找不到如何将其用作参数的其他方式。
这是一个简单的示例,我要实现的要求是dropdown-1 + Array(dropdown-2 +文本字段+ text-field)的UI,其中数组的文本字段取决于dropdown-1的值,我无法在主动选择中创建相同的UI。
有没有人知道options.dependency如何在詹金斯中工作,或者可以使用watch / other插件来实现?
答案 0 :(得分:0)
如果我问对了您的问题,那么您希望以更智能的方式选择参数。
所以你可以通过 groovy 脚本来完成。
这是我的示例,您可以在图片上看到: freestyle job config 抱歉,我不知道如何更好地显示自由式作业配置。
所以,逻辑很简单: 我正在收集第一个参数的 JSON,并对其进行一些解析。 然后我使用 Environmets 变量来显示它的内容,具体取决于第一部分的结果。
ps。我现在正在努力使用可变主机,因为我不知道如何在不要求用户输入的情况下在最后步骤中传递它。 但我相信你知道如何做到这一点。