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

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

评论

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

#1 楼

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

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}"]
]


#2 楼

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

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]
]