并行构建Jenkins管道作业(参数化顶级作业)

时间:2018-06-04 23:31:18

标签: jenkins groovy jenkins-pipeline jenkins-groovy

我在下面使用Jenkins管道代码来构建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 个答案:

没有答案