詹金斯SonarQube步骤去警告

时间:2017-08-16 13:11:00

标签: jenkins sonarqube jenkins-pipeline

我正在慢慢潜入Jenkins的管道groovy dsl。我试图找出如何创建一个声纳的步骤,并反映Jenkins构建服务器中的质量门信息。

此时我已经为声纳定义了以下步骤:

stage ('sonar') {
  mvn "-Dsonar.lang.patterns.jsp=notverified -Dsonar.host.url=http://sonar.server.example:9494 org.sonarsource.scanner.maven:sonar-maven-plugin:3.3.0.603:sonar -Dsonar.login=key
}

现在我希望Maven得到:

[INFO] Quality gate status: WARN

它没有在OKError上设置它,但也使得构建步骤也变为WARN(因此,不是漂亮的绿色或红色是黄色的漂亮颜色)。我一直在挖掘文档,但据我所知,没有真正的方法可以让步骤以任何方式进入WARN状态。并且在任何一个想法之间都有注意?

1 个答案:

答案 0 :(得分:1)

根据CloudBees support,您可以通过自己设置currentBuild.result来设置构建结果,因此,要获得指示不稳定状态的黄色球(单元测试失败),您可以执行以下操作:

currentBuild.result = 'UNSTABLE'

现在,当Sonar质量门状态为“WARN”时,您希望这样做。

他们document how to do it:首先用withSonarQubeEnv('Your Sonar server')包裹你的声纳执行,然后你等待服务器用waitForQualityGate()的结果给你回电话:

stage("Build & SonarQube analysis") {
    node {
        withSonarQubeEnv('My SonarQube Server') {
            sh 'mvn clean package sonar:sonar'
        }
    }
}

stage("Quality Gate Check"){
    timeout(time: 20, unit: 'MINUTES') {
        def qg = waitForQualityGate()
        if (qg.status == 'WARN') {
            currentBuild.result = 'UNSTABLE'
        }
    }
}

我没有对此进行过测试,我有一个过时的版本,我计划在有空的时候升级,使用手动脚本的方法比上面的复杂10倍,我想摆脱它并替换用这个解决方案...还没有完成,但我正在分享我收集的笔记。