DSL中如何处理管道作业的参数?

时间:2019-05-02 08:14:43

标签: jenkins jenkins-pipeline jenkins-plugins dsl

我有一个管道作业,它运行一系列作业(例如,设置>>运行测试>>清洁)。我希望此序列为100个不同的工具运行,每个工具具有不同的参数。完成参数设置。所以我可以传递不同的参数。

我正在将一个参数作为字符串参数传递给管道作为工具列表,它将用逗号分隔工具(例如,tool1,tool2,tool3)

现在,我想在所有工具中更改管道以运行相同的顺序(设置>>运行测试>>清洁),并将工具名称作为参数传递给作业之一。

我当时想我将使用此参数值并用逗号将其吐出,并获取每个工具名称,并在序列周围添加一个for循环。

我可能拥有forloop部分,并且可以多次运行。

for (int i = 0; i < 2; ++i) {
    stage('Setup') {
        build job: 'setup', parameters: [string(name: 'tool', value:'<tool>')]
    }
    stage('Build') {
        build 'Build Job'
    }
}

但是我不知道如何分割参数并为DSL中的forloop每次迭代赋予一个参数。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

jenkins中的参数在“ param”变量下可用。您可以使用split ()函数将字符串拆分为字符串数组。之后,如果要遍历所有字符串,则可以使用for循环遍历数组,例如:

def tools = params.tool.split (',') // default separator is blanks
for (String part : tools)
{
    println (part)
}

有不同的迭代方式,这对我来说似乎很直观。请注意,使用特定的分隔符会使字符串的逗号部分后面出现空格。如果需要,可以使用trim ()函数将其删除。