当前位置: 首页 > 面试题库 >

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

欧阳洲
2023-03-14
问题内容

我正在使用一个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 代替。

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

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

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


问题答案:

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

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

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

我希望这有帮助。



 类似资料:
  • 你好,詹金斯的朋友们, 我创建了一个JenkinsFreestyle项目,其中包含“执行Groovy脚本”步骤。从脚本中,我想在同一个Jenkins服务器上触发另一个参数化作业。 有人知道我该怎么做吗?

  • 我有一个工作,将连续访问一个数据库,并计算一个表中的行数。当数量达到某个阈值时,作业必须停止检查表并触发一些新的作业。现在,我正在尝试使用来执行此操作,但我不确定如何删除第一个作业。即: (2)当有5行时,Job1将。 (3)现在Job2需要启动,Job1必须停止运行。如何删除Job1?我知道,但我不确定何时或何处调用它,因为我不能在类中为更改。 此外,我如何触发Job2开始运行在这一点?我已经读

  • 添加工作到批处理作业 在“常规”选项卡的底部窗格中,选择工作类型,然后如有需要浏览连接、数据库和/或模式以找出你想运行的工作。 你可以双击或拖放工作来将工作从“可用的工作”列表移动到“已选择的工作”列表。若要从已选择的工作列表删除工作,请以相同的方式移除它们。你可以在一个批处理作业中运行来自不同服务器的配置文件。 若要重新排序工作的序列,可使用 “上移”或 “下移”按钮。 如果你想备份整个服务器,

  • 添加工作到批处理作业 在“常规”选项卡的底部窗格中,选择工作类型,然后如有需要浏览连接、数据库和/或模式以找出你想运行的工作。 你可以点击 或 来将已选择的工作或所有工作从“可用的工作”列表移动到“已选择的工作”列表。若要从已选择的工作列表删除已选择工作或所有工作,请点击 或 。你可以在一个批处理作业中运行来自不同服务器的配置文件。 若要重新排序工作的序列,可在已选择的工作列表中拖拉工作到所需的位

  • 添加工作到批处理作业 在“常规”选项卡的底部窗格中,选择工作类型,然后如有需要浏览连接、数据库和/或模式以找出你想运行的工作。 你可以双击或拖放工作来将工作从“可用的工作”列表移动到“已选择的工作”列表。若要从已选择的工作列表删除工作,请以相同的方式移除它们。你可以在一个批处理作业中运行来自不同服务器的配置文件。 若要重新排序工作的序列,可使用 “上移”或 “下移”按钮。 如果你想备份整个服务器,

  • 对于包含多个工作表的电子表格,我有一个脚本,可以在按下按钮时删除特定范围内所有工作表中的数据。 现在我有一个主电子表格,它链接到其他几个电子表格(以及它们包含的工作表)(导入范围、查询等)。)。 是否可以通过脚本在连接的电子表格中按一个按钮删除特定范围内的数据,我想从主电子表格中触发此操作?! 使用脚本从工作表中删除的数据是手动用户输入的,因此不来自主电子表格。表1中应删除的范围/单元格不同。A和