如何在csv文件的循环中运行Jenkins构建步骤

时间:2015-09-24 05:10:29

标签: jenkins jenkins-workflow

我尝试创建一个多次运行某个流的作业,每次在多个节点上并行使用不同的参数。 我有一个csv文件,每行包含运行所请求的参数。 我尝试使用多配置作业,我读到了关于动态轴的内容,但我不太清楚如何将它与我的csv文件中的数据一起使用。 我还看到了构建流程和工作流程插件,但同样,我无法理解如何将它与我的csv文件一起使用。

如果有人能给我提供如何解决这个问题的建议,我会感激不尽。

提前致谢,

斯万

2 个答案:

答案 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
    }
}