一直想给jenkins集成一下测试相关的一些组件,上次在极客时间看到把SonarQube集成进去 ,今天就小试一把 ,记录一下
1.首先就是SonarQube 就是搭建了,从官网下载来包放到服务器上,启动脚本是/usr/local/sonarqube-7.7/bin/linux-x86-64/sonar.sh start 配置文件在conf目录下,进去安装一下中文插件 就可以使用
2.开始集成到jenkins里安装插件
配置如下
下面是我的静态检测的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}"
}
注意点:
这里使用的要和你在后台配置的SonarQube servers里的neme一致