我尝试创建一个多次运行某个流的作业,每次在多个节点上并行使用不同的参数。 我有一个csv文件,每行包含运行所请求的参数。 我尝试使用多配置作业,我读到了关于动态轴的内容,但我不太清楚如何将它与我的csv文件中的数据一起使用。 我还看到了构建流程和工作流程插件,但同样,我无法理解如何将它与我的csv文件一起使用。
如果有人能给我提供如何解决这个问题的建议,我会感激不尽。
提前致谢,
斯万
答案 0 :(得分:1)
没有eachLine闭包的解决方案下面(适用于Jenkins版本2.89.3)。 像Jenlin这样的一些闭包似乎在Jenkins中被打破了。
def nodes = [:]
readFile("input.csv").split('\n').eachWithIndex { line, index ->
def params = line.split(',')
nodes[name] = {
// ...
}
如果您不需要计数器,则可以使用“each”代替
readFile("input.csv").split('\n').each { line -> ... }
答案 1 :(得分:0)
使用工作流插件,您可以读取文件,使用标准groovy解析内容,然后设置节点 - 类似
def nodes = [:]
readFile("myfile.csv").eachLine { line, count ->
def params = line.split(',')
nodes["line${count}"] = {
node {
// do stuff
}
}
}
parallel nodes
如果您不需要count变量,则可以使用splitEachLine
def nodes = [:]
readFile("abc.csv").splitEachLine(/,/) { runName, param2, p3 ->
nodes[runName] = {
// dostuff with param2, p3
}
}