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

How to access jenkins parent job build id in a MultiJob?

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

我配置了一个 Jenkins Multi Job 来触发我的自动化套件,它被分成多个块,比如 suite#1、suite#2、suite#3、suite#4(每个套件都是一个 maven 作业)分成 2阶段。

Phase#1 是一个同时具有 suite#1、suite#2 运行 的多作业,而 Phase#2 是另一个具有 suite#3 和 suite#4 的多作业。而阶段 运行 按顺序排列。

我在 suite#1 作业中获取父构建 ID 时遇到问题。这是将结果链接回父级所必需的。

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

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

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

谢谢

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

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

    cat > build.properties << _EOF_
    PARENT_BUILD_ID=${BUILD_ID}
    _EOF_
    
  2. 对于 "MultiJob Phase" -> "Phase Jobs",添加子作业并单击 "Add Parameters",然后 select "Parameters from properties file"。输入 "build.properties" 作为文件名。

确保 "execute shell" 构建步骤在 "Multijob" 构建步骤之前。 现在子作业将获取父构建 ID 作为 ${PARENT_BUILD_ID} 中的变量。

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