如何使用 Jacoco 和 Jenkins Pipeline 更改构建状态?

sdo*_*bie 3 groovy jenkins jacoco jenkins-pipeline

使用具有以下配置的 Jenkins Jacoco 插件版本 3.0.1 会生成有效的覆盖率报告,但无法实际更改构建状态。

                jacoco( 
                    execPattern: '**/target/code-coverage/**.exec',
                    classPattern: '**/target/classes',
                    sourcePattern: '**/src',
                    inclusionPattern: 'com/company/**',
                    changeBuildStatus: true,
                    minimumInstructionCoverage: '70'
                )
Run Code Online (Sandbox Code Playgroud)

记录的输出是

[JaCoCo plugin] Overall coverage: class: 19, method: 9, line: 4, branch: 2, instruction: 3
[JaCoCo plugin] Health thresholds: JacocoHealthReportThresholds [minClass=0, maxClass=0, minMethod=0, maxMethod=0, minLine=0, maxLine=0, minBranch=0, maxBranch=0, minInstruction=0, maxInstruction=0, minComplexity=0, maxComplexity=0]
[JaCoCo plugin] Apply Min/Max thresholds result: SUCCESS
Run Code Online (Sandbox Code Playgroud)

“应用最小/最大阈值”行表示已注册 changeBuildStatus 标志,但阈值均显示为 0。

changeBuildStatus 是否真的与管道一起工作,如果是这样,设置阈值的正确格式是什么?

小智 5

对我来说,我需要添加一个相应的 maximumCoverage 值。例如,

jacoco(
    execPattern: '**/target/code-coverage/**.exec',
    classPattern: '**/target/classes',
    sourcePattern: '**/src',
    inclusionPattern: 'com/company/**',
    changeBuildStatus: true,
    minimumInstructionCoverage: '70',
    maximumInstructionCoverage: '80'
)
Run Code Online (Sandbox Code Playgroud)

希望这能解决您的问题。