前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SonarQube WebHook

SonarQube WebHook

作者头像
用户5521279
发布2020-02-21 16:22:24
4K0
发布2020-02-21 16:22:24
举报
文章被收录于专栏:搜狗测试搜狗测试

前言

基于Jenkins的服务端持续集成已在搜狗奇点系统实现,实施流程如下图。

Jenkins Pipline执行过程,需要实时获取持续集成-静态代码扫描的结果,以确定扫描结果是否符合既定的要求。通过在SonarQube中设定与Jenkins的WebHook,即可解决这个问题。

SonarQube Jenkins WebHook

  1. SonarQube生成用户Token [SonarQube]-[我的账户]-[安全]

该Token不会显示第二次,请备忘。

  1. 配置Jenkins SonarQube [Jenkins]-[系统管理]-[系统设置]-[SonarQube servers] Token即为上一步生成的SonarQube的Token
  1. SonarQube配置Jenkins Webhook [SonarQube]-[配置]-[网络调用]-[新建Webhooks]

在代码扫描成功后,扫描结果需要回调Jenkins。 添加的Jenkins的Webhook结构为: http://[jenkins_url]/sonarqube-webhook/

SonarQube代码扫描阈值设定

SonarQube根据预先设定的阈值来判断此次扫描的结果,如何配置SonarQube静态代码扫描的阈值呢?

[SonarQube]-[质量阈]

可以自定义指标,设定质量阈适用的工程

Jenkins Pipline样例

Jenkins Pipline SonarQube Scan样例,在Jenkins Pipline执行过程中,会触发SonarQube进行代码扫描,同时校验SonarQube返回的扫描结果,来确定Jenkins Pipline的成功与否。

代码语言:javascript
复制
stage('SonarQube Scan') {
        if (runSonar == 'true') {
            withSonarQubeEnv('sonarqube') {
                //注意这里withSonarQubeEnv()中的参数要与之前SonarQube servers中Name的配置相同
                echo "starting codeAnalyze with SonarQube......"

                //Jenkins插件
                def scannerHome = tool 'sonarqube_scanner';
                sh "${scannerHome}/bin/sonar-scanner -D project.settings=cifiles/sonar-project.properties"


            }
            script {
                timeout(1) {
                    //这里设置超时时间1分钟,如果Sonar Webhook失败,不会出现一直卡在检查状态
                    //利用Sonar webhook功能通知pipeline代码检测结果,未通过质量阈,pipeline将会fail
                    def qg = waitForQualityGate('sonarqube')
                    //注意:这里waitForQualityGate()中的参数也要与之前SonarQube servers中Name的配置相同
                    if (qg.status != 'OK') {
                        error "未通过Sonarqube的代码质量阈检查,请及时修改!failure: ${qg.status}"
                    }
                }
            }
        }
    }
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-01-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 搜狗测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云代码分析
腾讯云代码分析(内部代号CodeDog)是集众多代码分析工具的云原生、分布式、高性能的代码综合分析跟踪管理平台,其主要功能是持续跟踪分析代码,观测项目代码质量,支撑团队传承代码文化。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档