无限数组作为Jenkins参数

时间:2018-05-25 09:42:46

标签: jenkins jenkins-plugins jenkins-groovy

我正在尝试创建一个Jenkins作业,其中Job迭代一系列值。数组项的数量不固定,在后续版本中可能会有所不同。

例如,我的作业遍历以下一组数组值:

ServerName:server1.example.com IP:1.1.1.1 user:Homer

ServerName:server2.example.com IP:2.2.2.2 user:Bart

ServerName:serverN.example.com IP:x.x.x.x用户:Ned

作业首次迭代运行,值为{ServerName:server1.example.com,IP:1.1.1.1,user:Homer},第二次迭代,值为{ServerName:server2.example.com,IP:2.2.2.2,用户:Bart}等等到N次迭代。

这里,重点是N不固定。

我用JSON / groovy查看了扩展选择参数,但找不到针对不同数量的数组项问题的解决方案。

是否有可以在此方案中使用的插件,如果有,那么正确的用法是什么?

1 个答案:

答案 0 :(得分:0)

我使用String Parameter,在我的管道脚本中,我使用script块来分割字符串,它在新行上分割,或者默认情况下只是空格,这就是我所需要的。看起来你需要一个特殊的分割字符,请注意,groovy支持正则表达式以便分割为shown here。也许你可以使用|字符并将其拆分,

"{ServerName: server.example.com, IP: 1.1.1.1, user: Bart1}|{ServerName: server2.example.com, IP: 2.2.2.2, user: Bart2}"

然后你可以做

script {
    def list = "${StringParamName}".split('|')

    // Can NOT use `for (var_item in list)` because of NotSerializableException
    for (int i = 0; i < list.size(); i++) {
        def item = list[i]
        // Do work with "${item}"
    }
}