如何从Jenkins管道中的SonarQube接收质量门状态?

时间:2019-02-26 19:31:11

标签: jenkins groovy sonarqube

对于以下管道脚本:

   stage('stage1'){

    withSonarQubeEnv(server){
            sh "${scannerHome}/bin/sonar-scanner"
        }
   }

stage1启动声纳扫描并以成功状态退出。

stage2等待30分钟,直到声纳扫描完成为止,根据下面的代码,詹金斯被认为获得了QualityGate状态。

   stage('stage2'){

        timeout(time: 40, unit: 'MINUTES') {
            def qGate = waitForQualityGate()
            if (qGate.status != 'OK') {
                error "Pipeline aborted due to quality gate failure: ${qGate.status}"
            }
        }
    }        

我们在Jenkins中配置了Sonar服务器和声纳扫描仪。

是否需要其他配置才能接收质量门状态?

1 个答案:

答案 0 :(得分:1)

要使其正常工作,您需要:

  1. Sonarqube,请使用最新版本LTS 6.7.x或7.6
  2. 版本> = 2.6.1的Sonarqube Jenkins插件
  3. 在詹金斯(Jenkins)中配置的Sonarqube扫描仪
  4. 在Jenkins中配置的Sonarqube主机 使
    withSonarQubeEnv(nameofyourconfiguredSonarHost)工作
  5. 在Sonarqube服务器中配置Webhook:
    转到https://yoursonarhost/admin/webhooks并使用该URL
    https://yourjenkins/sonarqube-webhook/
    注意结尾的'/'!

之后,它应该可以正常工作。 以我的经验,超时10分钟就足够了。
也许需要其他设置,例如代理或防火墙才能 从Sonarqube访问Jenkins-这取决于您的网络。