如何在Jenkins构建之间跟踪值(静态分析)

3

我正在运行一些静态分析工具,希望能够追踪构建结果。例如,如果一个分支的提交导致安全漏洞数量增加,我希望能够向提交者发送电子邮件。我知道有像Sonar和Analysis Collector这样的插件,但它们并不能涵盖我需要的所有分析领域,也似乎没有根据构建趋势触发操作的能力(如果我理解不正确,请纠正我)。


如果其中一個回答對您有幫助,請將其標記為已接受。謝謝。 - twasbrillig
2个回答

1
您可以使用Groovy Postbuild插件:

https://wiki.jenkins-ci.org/display/JENKINS/Groovy+Postbuild+Plugin

它可以让您从当前构建的构建日志中提取数据(例如检测到的漏洞数量),方法是使用 num_vul = manager.getLogMatcher(regexp)
并且可以通过从以前的构建日志中提取信息来进行比较,例如:
currentBuildNumber = manager.build.number
manager.setBuildNumber(currentBuildNumber - 1)
prev_num_vul = manager.getLogMatcher(regexp)

那么,如果漏洞数量增加了,我会调用manager.buildFailure()来将构建状态设置为FAILURE,然后让下一个PostBuild步骤是Email-ext插件,该插件允许在失败事件中向提交者发送电子邮件。


0

我建议使用SonarQube工具,它可以完全满足你所描述的需求。你提到你已经看过这个工具,但也许你错过了通知功能构建破坏器插件。SonarQube还有更多围绕Jenkins集成的功能。SonarQube是免费使用的。

如果你仍然觉得缺少一些功能,那么具体询问如何通过SonarQube覆盖该方面可能会非常有价值。以上只是我的个人意见。


谢谢,通知功能看起来很有用,但我正在寻找一种更通用的跟踪方法,因为SonarQube在覆盖范围上存在一些漏洞。不过他们似乎有相当活跃的兴趣,希望其中的一些漏洞会得到填补。 - fourthnen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接