据我所知,“聚合下游测试结果”功能无法按预期工作(并且很难找到有用的文档)。我想实现非常相似的功能:
作业构建并行触发作业 T1 , T2 (其中 T1 执行FindBugs, T2 做PMD)。
场景1: 一旦 T1 和 T2 完成(我可以使用“Join”插件实现)我想收集工件( T1 / findbugs.xml和 T2 /pmd.xml)。然后分析这些并生成好的统计数据。
场景2(我更喜欢这个): 与方案1类似,但分析是作为 T1 和 T2 (并行!)的一部分完成的。一旦 T1 和 T2 完成,分析结果就会合并到很好的统计数据中。
我的问题: 对于方案1,我不知道如何引用下游项目 T1 和 T2 。我可以使用上一次成功的构建,但在考虑许多并行作业时,这似乎很奇怪。
对于方案2,我不知道如何导入FindBugs / PMD / Checkstyle / SLOCcount / ...插件所需的数据,以便相应的图形(也是?)出现在 T1之外 / * T2 *。
谢谢, 卡斯滕
答案 0 :(得分:10)
以下是一个稍微简单的方案的大纲,但我认为您可以轻松地将其概括为多个下游作业的情况。诀窍是在下游工作中使用“标记”参数。
让 P 成为父作业, D 作为下游作业。
如果使用Python(这就是我所做的) - 利用Python JenkinsAPI wrapper。如果使用Groovy - 使用Groovy Plugin并将脚本作为系统脚本运行。然后,您可以通过其Java API访问Jenkins。
答案 1 :(得分:8)
malenkiy_scot的帖子增加了两个:
您实际上并不需要说明中步骤3的脚本:“从另一个项目复制工件”构建步骤允许指定包含参数的源作业。
例如,使用父级表示法,它可以使用D
作为“项目名称”来复制正确执行作业D/PARENT_ID=EXPECTED_VALUE
的工件。
您可以使用预定义的$JOB_NAME
(基本上相同),而不是手动连接$BUILD_ID
和$BUILD_TAG
。有关标准环境变量的完整列表,请参阅https://wiki.jenkins-ci.org/display/JENKINS/Building+a+software+project#Buildingasoftwareproject-JenkinsSetEnvironmentVariables。
答案 2 :(得分:-3)
Jenkins插件https://wiki.jenkins-ci.org/display/JENKINS/Build+Flow+Plugin应该有助于满足这些要求。