DevOps之在jenkins中使用Pipeline集成SonarQube静态检测代码

一直想给jenkins集成一下测试相关的一些组件,上次在极客时间看到把SonarQube集成进去 ,今天就小试一把 ,记录一下

1.首先就是SonarQube 就是搭建了,从官网下载来包放到服务器上,启动脚本是/usr/local/sonarqube-7.7/bin/linux-x86-64/sonar.sh start 配置文件在conf目录下,进去安装一下中文插件 就可以使用

2.开始集成到jenkins里安装插件


image.png

配置如下


image.png

下面是我的静态检测的jenkinsfile内容


stage('Unit Testing'){

        try {

            echo "start SonarQubeEnv testing"

            withSonarQubeEnv('SonarQube77') {

                //

                sh "cd eureka && ${mvn_com} sonar:sonar -Dsonar.projectKey=zhangrui  -Dsonar.host.url=http://192.168.111.118:9000 -Dsonar.login=1fa6e987c3f4d5d2e13822ec5e974da33a68cb6a"

            }

            script {
            sleep(10)   //这里遇到一个坑  返回状态出现阻塞现象 加sleep 后正常

            timeout(15) {

                  //利用sonar webhook功能通知pipeline代码检测结果,未通过质量阈,pipeline将会fail

                  def qg = waitForQualityGate()

                      if (qg.status != 'OK') {

                          error "未通过Sonarqube的代码质量阈检查,请及时修改!failure: ${qg.status}"

                          bearychatSend message:"Jenkins发布项目 ${env.JOB_NAME} 第${env.BUILD_NUMBER},代码静态检测结果:未通过:${qg.status}",webhook: "${bearychat_url}"

                      }

                  }

              }

          } catch (exc) {

              bearychatSend message:"Jenkins发布项目 ${env.JOB_NAME} 第${env.BUILD_NUMBER},结果:静态检测失败",webhook: "${bearychat_url}"

            } 

        bearychatSend message:"Jenkins发布项目 ${env.JOB_NAME} 第${env.BUILD_NUMBER},结果:静态检测通过 ${qg.status}",webhook: "${bearychat_url}" 

      } 

注意点:


image.png

这里使用的要和你在后台配置的SonarQube servers里的neme一致

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容