Jenkins 脚本管道声纳集成

Posted

技术标签:

【中文标题】Jenkins 脚本管道声纳集成【英文标题】:Jenkins Script Pipeline sonar Integration 【发布时间】:2017-02-19 23:43:32 【问题描述】:

我想使用 Jenkins 2.x Groovy Script Build Pipeline 开始 Sonar 项目分析。

我在 Maven 中配置了声纳,所以没什么大不了的:

withEnv(["JAVA_HOME=$javaHome", "PATH + MAVEN=$mavenHome/bin:$env.JAVA_HOME/bin", "MAVEN_OPTS=$mavenOpts"]) 
        sh 'mvn -B sonar:sonar'

但是我怎样才能从声纳中得到结果呢?或者更好的是如何确定是否达到了质量门,以便我可以停止构建管道。

据我所知,由于某些版本的声纳,构建断路器概念已过时。或者你会如何处理。

我仍然认为,如果项目的底层代码太糟糕,停止/暂停构建管道是个好主意。

【问题讨论】:

【参考方案1】:

不知道这是否理想,但我通过请求从 SonarQube api 获取状态(您可以使用 HttpRequest 插件来完成)。

def response = httpRequest 'https://SONAR_USER:SONAR_PASSWORD@SONAR_URL/api/qualitygates/project_status?projectKey=PROJECT_KEY'
def slurper = new groovy.json.JsonSlurper()
def result = slurper.parseText(response.content)
if (result.projectStatus.status == "ERROR") 
    currentBuild.result = 'FAILURE'

【讨论】:

试了一下,得到了这个:java.lang.NoSuchMethodError: No such DSL method 'httpRequest' found @Lee 你需要安装 HttpRequest 插件。 我不认为这是一个非常干净的答案,但这是我发现的唯一真正有效的方法,所以谢谢!

以上是关于Jenkins 脚本管道声纳集成的主要内容,如果未能解决你的问题,请参考以下文章

声纳质量门和电子邮件 Jenkins 管道

如何在 Jenkins 声明式管道中设置声纳扫描仪

Jenkins 2 Pipeline 中的声纳 - 缺少全局配置

如何从詹金斯管道中选择声纳质量门?

詹金斯/声纳集成

java面试之jenkins