如何在詹金斯同时重建多个工作?


9

我正在使用Jenkins 重建插件通过一个“ 重建”按钮执行参数化的构建。但是,当我需要重新运行数十个参数化的作业(无论是选择的作业,还是来自同一文件夹的作业)时,它仍然效率不高。

有没有更简单的方法(最终使用不同的插件)来使用上次使用的参数同时重新运行多个作业?


2
我不知道执行多次重建的插件。但是我可以建议采取不同的方法,并使用基于重试的解决方案,其中任何失败的构建本身都会重试(根据某些配置)。这就需要多重重建冗余(至少在某些情况下)。
阿萨夫·拉维

Answers:


8

您可以使用管道将作业捆绑在一起,以并行方式或通过步骤顺序执行它们。
您可以在通过管道脚本调用每个作业时将相关参数传递给每个作业。
然后,您只需要重建一个管道作业即可。您也可以通过变量将作业与通用的构建名称绑定在一起。

build job: 'buildjob1', parameters: [
  [$class: 'StringParameterValue', name: 'BUILD_NAME', value: ${env.JOB_BASE_NAME}-${env.BUILD_NUMBER}"], 
  [$class: 'StringParameterValue', name: 'FIXEDPARAM', value: 'some-string'],
  [$class: 'StringParameterValue', name: 'PARAM1', value: "${PARAM1}"]
]

1

您还可以构建参数对象列表,然后将其传递到构建步骤:

def paramsMap = [:]
paramsMap['param1'] = 'value1'
paramsMap['param2'] = 'value2'
def paramsObjects = []
paramsMap.each {
  key, value ->
    paramsObjects.push([$class: 'StringParameterValue', name: key, value: value])
}
build job: jobName, parameters: paramsObjects

paramsObjects看起来像这样:

[
    [$class:StringParameterValue, name:param1, value:value1],
    [$class:StringParameterValue, name:param2, value:value2]
]
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.