[英]Jenkins groovy build step trigger another job in groovy script removes original job's parameters
我正在使用一个groovy脚本来触发其他作业,这是基于Groovy插件页面中的示例。
我将作业列表作为参数,验证它们是否存在并使用一些参数触发它们。 请参阅主触发器代码:
// Prepare parameters array
def params =
[
new StringParameterValue('PARAM1', 'val1'),
new StringParameterValue('PARAM2', 'val2'),
]
def future = job.scheduleBuild2(0, new Cause.UpstreamCause(build), new ParametersAction(params))
println "Waiting for the completion of " + jobLink
anotherBuild = future.get()
我触发的工作运行得很好,但有一个主要问题。 它们的原始参数丢失,并被新的参数PARAM1和PARAM2取代。
如何触发作业并添加其默认参数而不替换它们?
我努力为它找到一个解决方案而没有找到一个......
编辑:我在考虑不设置参数(并允许作业使用其默认值),但为作业的执行设置环境变量。 有没有人有关于如何做到这一点的想法或例子?
在尝试了很多选项后,我决定加载我即将触发的作业的默认参数,并将它们添加到我正在准备的参数数组中,如下例所示。
我使用了这里的示例来获取我的作业的初始默认配置。
我仍然需要为选择参数和空值添加一些逻辑,但我对当前结果感到满意。
我希望这有帮助。
这些天我会使用像Build Flow插件这样的东西。 该业务流程DSL / API将相关代码减少为:
build('job', PARAM1: 'val1'
PARAM2: 'val2')
您可以将参数作为哈希映射传递,缺少的参数将回退到默认值。
这个插件的一个问题是:它很快就会被抛弃。 一个全新的替代品(尚未发布): https : //github.com/jenkinsci/workflow-plugin 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.