3

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

如果有人能告诉我如何解决这个问题,我将不胜感激。

提前致谢,

西万

4

2 回答 2

2

在没有 eachLine 闭包的解决方案下(在 Jenkins 版本 2.89.3 中工作)。像 eachLine 这样的一些闭包在 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 -> ... }
于 2018-02-13T13:25:08.997 回答
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
    }
}
于 2015-09-24T22:43:08.963 回答