首页 文章

詹金斯SonarQube步骤去警告

提问于
浏览
1

我正在慢慢潜入詹金斯的管道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 回答

  • 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倍的手动脚本方法,我想摆脱它并用这个解决方案替换它 . 尚未完成,但我正在分享我收集的笔记 .

相关问题