Построение параллельных заданий Jenkins Pipeline (параметризованная работа верхнего уровня)
У меня есть код Jenkins Pipeline, приведенный ниже, для создания N+ последующих заданий. Я ищу умный способ для этого конвейера принимать пользовательские параметры. Заранее спасибо!
def params_map = [
'key1': 'value1',
'key2': 'value2'
]
def branches = [:]
def build_job(k, v) {
return {
stage("Build job ${k}") {
node {
build job: 'downstream-job', parameters: [
string(name: "PARAM1", value: '${k}'),
string(name: "PARAM2", value: "${v}")
]
}
}
}
}
for (kv in mapToList(params_map)) {
branches[kv[0]] = build_job(kv[0], kv[1])
}
parallel branches
// Required due to JENKINS-27421
@NonCPS
List<List<?>> mapToList(Map map) {
return map.collect { it ->
[it.key, it.value]
}
}