Построение параллельных заданий 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]
  }
}

0 ответов

Другие вопросы по тегам