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

09-05 07:58