#groovy #jenkins-pipeline
#groovy #дженкинс-конвейер
Вопрос:
У меня есть следующий скрипт 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), не повторяя один и тот же код снова и снова?
Как этого можно достичь?
Ответ №1:
Вы могли бы сделать это с помощью простого метода :
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
}