jenkins 扩展选择参数插件多级选择

7bsow1i6  于 2023-01-08  发布在  Jenkins
关注(0)|答案(3)|浏览(282)

好吧,我下载了这个插件:
https://wiki.jenkins-ci.org/display/JENKINS/Extended+Choice+Parameter+plugin
并选择Multi-Level Single Select作为参数类型。
问题是,当我选择了多个参数,并且希望在构建的shell中使用这些参数时,我只能选择LAST参数
如果我执行$PARAM_NAME,它只输出最后一个参数,但我需要我选择的所有参数,而不仅仅是最后一个参数。
这是一张

演示图片

iqxoj9l9

iqxoj9l91#

您不是根据选择构建参数,而是导航到所需的值。例如,国家/地区---〉州/省----〉城市
您不是在构建CountryStateCity变量,而是在声明City变量是您选择的值。

brgchamk

brgchamk2#

我可以通过使用扩展选择参数JSON参数类型JSON参数配置Groovy脚本来获得最接近的结果。

import org.boon.Boon;
def jsonEditorOptions = Boon.fromJson(/{
  disable_edit_json: true,
  disable_properties: true,
  no_additional_properties: true,
  disable_collapse: true,
  disable_array_add: false,
  disable_array_delete: false,
  disable_array_reorder: false,
  theme: "bootstrap3",
  iconlib: "fontawesome5",
  schema: {
   "type": "object",
   "title": "",
   "required": [
    "Locations"
   ],
   "properties": {
    "Locations": {
     "type": "array",
     "format": "table",
     "title": "",
     "uniqueItems": true,
     "items": {
      "type": "object",
      "title": "Location",
      "properties": {
       "Country": {
        "type": "string",
        "propertyOrder" : 1,
        "enum": [
         "USA",
         "Germany",
         "India"
        ]
       },
       "City": {
        "type": "string",
        "propertyOrder" : 2,
        "enum": [
         "New York",
         "Frankfurt",
         "Mumbai"
        ]
       },
       "Neighborhood": {
        "type": "string",
        "propertyOrder" : 3
       }
      }
     },
     "default": [{
      "Country": "USA",
      "City": "New York",
      "Neighborhood": "Times Square"
     }]
    }
   }
  }
  /);

您可以访问plugin pagejson-editor.github.io来创建和验证JSON模式,如上所示。
这是如何出现在Jenkins:

但是请注意,它仍然不提供基于第一列中所选内容的上下文相关的第二列。第二列的行为与第一列完全相同,您可以从预定义列表中进行选择,而不使用任何过滤器。
在打印变量Location时,它返回以下JSON:

{"Locations":[{"City":"New York","Country":"USA","Neighborhood":"Times Square"},{"City":"Frankfurt","Country":"Germany","Neighborhood":"Bornheim"},{"City":"Mumbai","Country":"India","Neighborhood":"Vile Parle"}]}
vbopmzt1

vbopmzt13#

我遇到了同样的问题,所以我在参数文件中添加了一个“行号”列:

Country         City            Row
    United States   San Francisco   1
    United States   Chicago         2
    Mexico          Mexico City     3
    Mexico          Cancun          4

这样,插件返回行号,我可以从参数文件中寻址该行。

相关问题