如何简化重复构建作业的语法?

How to simplify repeated build job syntax?

我有以下 Groovy 脚本:

node {
    stage('Testing') {
        build job: 'Test', parameters: [string(name: 'Name', value: 'Foo'), string(name: 'Param1', value: Param1), string(name: 'Param2', value: Param2), string(name: 'Param3', value: Param3), string(name: 'Param4', value: Param4), string(name: 'Param5', value: Param5)], quietPeriod: 2, wait: false
        build job: 'Test', parameters: [string(name: 'Name', value: 'Bar'), string(name: 'Param1', value: Param1), string(name: 'Param2', value: Param2), string(name: 'Param3', value: Param3), string(name: 'Param4', value: Param4), string(name: 'Param5', value: Param5)], quietPeriod: 2, wait: false
        build job: 'Test', parameters: [string(name: 'Name', value: 'Baz'), string(name: 'Param1', value: Param1), string(name: 'Param2', value: Param2), string(name: 'Param3', value: Param3), string(name: 'Param4', value: Param4), string(name: 'Param5', value: Param5)], quietPeriod: 2, wait: false
        // ...
    }
}

旨在 运行 Jenkins 中的多个参数化作业。由于我有大量作业要 运行 使用不同的参数,我想避免重复相同的语法并定义一次参数并重新使用它。

第一个Name参数不同,其余相同。如何重用相同的参数 (Param1-Param5) 而不是一遍又一遍地重复相同的代码?

如何实现?

你可以用一个简单的方法做到这一点:

node {
    stage('Testing') {
        buildJob('Foo')
        buildJob('Bar')
        buildJob('Baz')
        // ...
    }
}

def buildJob(name) {
    build job: 'Test', parameters: [string(name: 'Name', value: name), string(name: 'Param1', value: Param1), string(name: 'Param2', value: Param2), string(name: 'Param3', value: Param3), string(name: 'Param4', value: Param4), string(name: 'Param5', value: Param5)], quietPeriod: 2, wait: false
}