Jenkins Script Pipeline声纳整合

我想用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'
}

但我如何从声纳中获得结果?或者甚至更好的我如何确定是否实现了质量门,以便我可以停止构建管道.

据我所知,自从某些声纳版本以来,构建断路器概念已经过时了.或者你会如何处理这个问题.

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

最佳答案 不知道这是否理想,但是我从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'
}
点赞