小编典典

Jenkins groovy构建步骤触发了groovy脚本中的另一个作业,删除了原始作业的参数

jenkins

我正在使用一个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()

我触发的作业运行完美,但存在一个 主要 问题。它们的原始参数丢失,并被新的 PARAM1PARAM2 代替。

如何触发作业并 添加 其默认参数 而不替换 它们?

我努力寻找解决方案,但没有找到…

编辑: 我在考虑不设置参数(并允许作业使用其默认值),而是设置环境变量以执行作业。是否有人对此有想法或示例?


阅读 297

收藏
2020-07-25

共1个答案

小编典典

在尝试了许多选项之后,我决定为要触发的作业加载默认参数,并将它们添加到我正在准备的参数数组中,如下面的示例所示。

我从此处使用示例获取作业的初始默认配置。

我仍然必须向选择参数和null值添加一些逻辑,但是我对当前结果感到满意。

我希望这有帮助。

2020-07-25