如何在MultiJob中访问jenkins父作业构建ID?

时间:2015-06-18 05:59:56

标签: maven jenkins

我需要在多个阶段触发Automation Suite,并在一个测试摘要报告中汇总测试结果。

我配置了一个Jenkins Multi Job以触发我的自动化套件,该套件分为多个块,例如套件#1,套件#2,套件#3,套件#4(每个套件是一个maven作业)分为两个阶段。

阶段#1是一个多工作,套件#1,套件#2并行运行,阶段#2是另一个多工作,套件#3和套件#4。阶段按顺序运行。

在我的套件#1工作中,我无法获得父版本ID。将结果链接回父级需要这样做。

例如:父作业 - 内部编号为PB_001,       分配到自定义变量myBuildNumber = PB_ $ BUILD_NUMBER     阶段1:          套房#1内部编号101          Suite#1内部版本号201     阶段2:          Suite#1内部版本号301          Suite#1内部版本号401

当我尝试访问myBuildNumber时,它会提供当前作业内部版本号,即PB_101而不是父作业中保留的内容。

请建议这是否可以实现?我尝试使用参数插件/预定义参数仍然无法获得父版本号。

谢谢你

1 个答案:

答案 0 :(得分:0)

我正在使用此方法将构建ID从父多作业传递到子作业:

  1. 在父作业中,添加一个“执行Shell”构建步骤,将$ {BUILD_ID}保存到文件中,如下所示:

    cat > build.properties << _EOF_
    PARENT_BUILD_ID=${BUILD_ID}
    _EOF_
    
  2. 对于“MultiJob Phase” - &gt; “阶段作业”,添加子作业并单击“添加参数”,然后选择“属性文件中的参数”。输入“build.properties”作为文件名。

  3. 确保“执行shell”构建步骤在“Multijob”构建步骤之前。 现在,子作业将在$ {PARENT_BUILD_ID}中将父构建ID作为变量。

    请注意,步骤(1)适用于Unix构建从属服务器;您可能需要相应地为Windows奴隶更改它。