1、准备sonarqube的token
在sonarqube平台创建jenkins用户,用来专门对接Jenkins
在使用火狐浏览器通过sonarqube 8.9.6创建用户时,点击创建按钮无反应,使用chrome浏览器创建成功。
sonarqube默认开启用户身份认证,可以点击Administration -> Configuration -> General Settings -> Security查看该配置。

使用jenkins用户登录,点击左上角用户头像 -> My Account -> Security,生成token
注意,确保复制一份保存,过后就无法查看该token。
2、Jenkins中安装sonar插件并配置
安装SonarQube Scanner插件;
安装完成后,进入系统管理 -> 系统配置 -> SonarQube servers,点击Add SonarQube,完成配置:
勾选Environment variables
name:自定义即可
ServerUrl:sonar服务地址,地址的最后没有斜杠
Server authentication token: 前一步生成的token。注意:创建token时,需选择'Secret Text'类型

进入系统管理 -> 全局工具配置 -> SonarQube Scanner,完成scanner配置。

3、配置流水线job
node('test-agent') {
def sonar_home = tool name: 'sonar-scanner-4.6.2'
withEnv(["PATH+bin=${sonar_home}/bin:/usr/local/bin:/usr/bin:/bin"]) {
stage('拉取代码') {
sh "echo $PATH"
git credentialsId: 'github', url: 'https://github.com/TTFHW/jenkins_pipeline_java_maven.git'
}
stage('代码审查'){
withSonarQubeEnv('sonarqube-8.9.6') {
sh "sonar-scanner -Dsonar.java.binaries=src -Dsonar.projectKey=myproject -Dsonar.sources=src -Dsonar.host.url=http://192.168.116.128:9000/"
}
}
stage('阈值判断') {
timeout(30) { waitForQualityGate abortPipeline: true }
}
}
}
4、在sonarqube平台配置webhook,用来回调扫描的结果
使用admin登录,进入Administration -> Configuration -> Webhooks,点击create,URL配置为:Jenkins地址+/sonarqube-webhook。然后在jenkins配置webhook的secret。

https://www.cnblogs.com/liuyitan/p/13160755.html
https://github.com/jenkinsci/sonarqube-plugin
网友评论