Jenkins参数列表根据用户选择下拉

时间:2017-06-29 01:08:05

标签: jenkins groovy jenkins-plugins jenkins-groovy

我可以使用插件/ groovy脚本进行以下操作吗?

我有一个客户列表,我需要开始测试 我可以访问主站中每个客户端的测试列表/硬件列表(在平面文件中)

当我使用参数化构建选择客户端时,我需要更新与所选客户端相关的文件内容

我试着环顾四周但找不到解决问题的方法。非常感谢你的帮助。

此外,有没有办法可以将这个字符串的选项转换为数字键值映射?

实施例: 主服务器具有以下目录结构:

Client1
|_HW_list.log
   HW_1
   HW_2
|_TestLst.log
  test1
  test2
Client2
|_HW_list.log
   HW_1
|_TestLst.log
  testA
  testB

当我尝试启动作业并从参数化插件中选择Client1时,我应该能够在设备下列出HW_1和HW_2,并在测试列表中列出test1,test2。

在我选择测试后,我应该能够将此信息传递给从节点。

1 个答案:

答案 0 :(得分:1)

您需要Jenkins https://wiki.jenkins.io/display/JENKINS/Active+Choices+Plugin的“Active Choice Reactive Parameter”插件。您需要在配置中包含3个构建参数:

  1. “Active Choices参数” - 让我们将其命名为“CLIENT”。使用它作为“单选”类型,在相应的字段中使用groovy脚本,如下所示:

    return ["Client1", "Client2", "Client3"]

  2. 并将构建参数“Active Choices Reactive”与前一个参数配对 - 让我们将其命名为“TESTS”。使用它作为“单选”类型,在相应的字段中使用groovy脚本,如下所示:

    switch(CLIENT){
     case "Client1":
    return ["Tests1", "Tests11", "Tests111"]
     break
    case "Client2":
        return ["Tests2", "Tests22", "Tests222", "Tests2222"]
    break
     case "Client3":
        return ["Tests3", "Tests33", "Tests333"]
     break
    } 
    
  3. 如果您不需要在硬件设备和测试之间存在依赖关系,只需

    1. 并将构建参数“Active Choices Reactive”与前一个参数配对 - 让我们将其命名为“HW”。使用它作为“单选”类型,在相应的字段中使用groovy脚本,如下所示:

      switch(CLIENT){
       case "Client1":
      return ["HW1", "HW2"]
       break
      case "Client2":
          return ["HW1"]
      break
       case "Client3":
          return ["HW2"]
       break
      } 
      
    2. 另一种选择是设置“主动选择反应参考参数”并配置HW和TESTS的使用。