在Jenkins中聚合下游参数化作业的结果

Rus*_*lop 10 jenkins

我有一个Jenkins Build作业,它使用Jenkins参数化触发器插件以测试名称作为参数触发多个Test作业.这启动了多个执行器上的大量测试构建,这些构建器都正确运行.

我现在想要使用'聚合下游测试结果 - >自动聚合所有下游测试'来聚合结果.我已在Build作业中启用此功能并设置了指纹识别,以便将这些作为下游作业识别.在Build jobs lastBuild页面中,我可以看到它们被识别为下游构建:

下游建设

测试#1-#3

当我点击"聚合测试结果"时,它只显示最新的(测试#3).如果作业总是运行相同的测试但是我的所有测试套件都运行不同的部分,这可能是一种很好的行为.

有什么方法可以让我聚合所有相关的下游测试版本?

附加:如果您复制测试作业,则聚合测试结果可以正常工作.这并不理想,因为我有大量的测试套件.

mal*_*cot 4

我将概述手动解决方案(如评论中所述),并在您稍后需要时提供更多详细信息:

P为父作业,D为下游作业(您可以轻松地将方法扩展到多个下游作业)。

  1. P的实例(构建)通过构建步骤(不是作为构建后步骤)通过参数化触发器插件调用D并等待D完成。与其他参数一起,P向D传递一个参数 - 我们称之为PARENT_ID - 基于P的构建的BUILD_ID
  2. D执行测试并将其归档为工件(以及 jUnit 报告 - 如果适用)。
  3. 然后, P执行外部 Python(或内部 Groovy)脚本,该脚本通过PARENT_ID查找D的适当构建(您迭代D的构建并检查PARENT_ID参数的值)。然后,脚本将工件从D复制到P,然后P发布它们。

如果使用 Python(这就是我所做的)- 使用Python JenkinsAPI 包装器。如果使用 Groovy - 使用Groovy 插件并将脚本作为系统脚本运行。然后您可以通过Java API访问 Jenkins 。