繁体   English   中英

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

[英]How to receive quality gate status from SonarQube in Jenkins pipeline?

对于以下管道脚本:

   stage('stage1'){

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

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

stage2等待 30 分钟,直到声纳扫描完成,jenkins 假设按照以下代码接收 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 中配置了声纳服务器和声纳扫描仪。

是否需要额外的配置来接收质量门状态?

要使其工作,您需要:

  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 - 这取决于您的网络。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM