gpt4 book ai didi

jenkins - 超出 Sonar 限制时使 Jenkins Build 不稳定

转载 作者:行者123 更新时间:2023-12-04 17:53:13 25 4
gpt4 key购买 nike

我们正在 Jenkins 运行 Sonar ,并希望在超出 Sonar 限制时将构建标记为不稳定。我们已经在质量配置文件中将适当的限制设置为警报。

我们认为我们可以使用 Build Breaker 将 Sonar 标记为失败(这会将这一事实放入 Jenkins 日志中),然后在这种情况下使用 Jenkins Post-build Groovy 脚本来不稳定构建。

不幸的是,如果 Sonar 失败,Jenkins Sonar 插件会标记构建失败(并停止构建过程),并且 Jenkins 人员表示这是设计好的,并将相关缺陷设置为“不会修复”。

我还尝试将 Sonar 的日志记录设置为 Verbose,希望超出的限制会出现在日志中(因此我们可以再次使用后期构建常规任务),但情况似乎也并非如此。

任何见解?在这一点上,在我看来,最好的办法是创建一个 Build Breaker 的变体,它只是报告警报但不会破坏构建,但如果可以避免的话,我宁愿不走自定义插件路线.

最佳答案

好的,我们已经满意地解决了这个问题,尽管它确实需要一个自定义的 Sonar 插件。

我们创建了一个 BuildBreaker 版本(我们称之为 BuildWarner)。唯一的区别(除了插件名称、包名称、类名称等)是 AlertThresholdChecker.java 的第 44 行更改为:

  fail("Alert thresholds have been hit (" + count + " times).");

到 :
  logger.info("SONARTHRESHOLDSEXCEEDED - Alert thresholds have been hit (" + count + " times).");

一旦在 Sonar 中运行,Jenkins 控制台将包含短语 SONATHRESHOLDSEXCEEDED 如果任何警报命中达到错误阈值级别。

然后,安装 Jenkins Groovy Postbuild 插件。我们使用以下 Groovy 脚本:
if(manager.logContains(".*SONARTHRESHOLDSEXCEEDED.*")) {
manager.addWarningBadge("Sonar Thresholds Exceeded")
manager.createSummary("warning.gif").appendText("<h1>Sonar Thresholds Exceeded</h1>", false, false, false, "red")
manager.buildUnstable()
}

如果您愿意,也可以使用 Jenkins Text Finder 插件。

需要注意的是,Sonar 插件必须在 Groovy Post Build 或 Text Finder 插件之前。

希望这可以帮助其他人。

关于jenkins - 超出 Sonar 限制时使 Jenkins Build 不稳定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12513559/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com