詹金斯的Cobertura插件通过勾选这些方框来支持棘轮:
勾选此框时,将在每次成功构建时更新覆盖率指标目标(在Jenkins配置页面中):
触发种子作业时,job-dsl-plugin会覆盖这些值。如何在触发种子作业时保留这些值?
答案 0 :(得分:0)
似乎我现在找不到一个很好的办法,但这是我的解决方案。
<强>解决方案强>
1。执行Groovy脚本并将所有当前作业cobertura配置存储在JSON文件中。
可以检索Cobertura配置,如:
def coberturaPublisher = project.getPublishersList().get(CoberturaPublisher)
coberturaPublisher.**healthyTarget**.getTarget(**CoverageMetric.METHOD**)
2。 job-dsl-plugin使用JSON文件配置cobertura(如果可用)
job-dsl的CoberturaContext常规方法不能在这里调用,因为第一步中表示的数据与方法参数不同:
截至今天,我不能简单地将值除以100000,因为该方法接受的是Integer而不是double。为了保持棘轮配置的精度,我必须通过直接操纵目标来绕过验证:
coberturaContext.targets = [
'METHOD': new CoberturaContext.CoberturaTarget(
targetType: CoberturaContext.TargetType.METHOD,
healthyTarget: 8000000,
unhealthyTarget: previousConfig ? previousConfig.cobertura.method.unhealthy : 0,
failingTarget: previousConfig ? previousConfig.cobertura.method.failing : 0
),
为什么要在创建JSON文件的同时直接调用Jenkins API?
我的种子作业配置了这个example here,因此我在作业配置中使用了一个额外的类路径。当我试图直接访问Jenkins API时,我遇到了Cobertura插件类的类加载问题。