一尘不染

詹金斯下游参数化作业的汇总结果

jenkins

我有一个Jenkins Build作业,它使用Jenkins Parameterized Trigger
Plugin触发了多个以测试名称为参数的Test作业。这将在多个都能正常运行的执行器上启动许多测试构建。

现在,我想使用“汇总下游测试结果->自动汇总所有下游测试”来汇总结果。我在“构建”作业中启用了此功能,并设置了指纹识别,以便将其识别为下游作业。在“构建作业的lastBuild”页面中,我可以看到它们被识别为下游构建:

下游构建

测试#1-#3

但是,当我单击“汇总测试结果”时,它仅显示最新的这些(测试#3)。如果作业始终运行相同的测试,但是我的所有运行的都是测试套件的不同部分,那么这可能是一个好习惯。

有什么办法可以让我汇总所有相关的下游测试版本?

附加:如果您复制测试作业,则汇总的测试结果确实有效。这不是理想的,因为我有大量的测试套件。


阅读 224

收藏
2020-07-25

共1个答案

一尘不染

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

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 。

2020-07-25