我正在尝试创建一个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查看了扩展选择参数,但找不到针对不同数量的数组项问题的解决方案。
是否有可以在此方案中使用的插件,如果有,那么正确的用法是什么?
答案 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}"
}
}