环境安装
使用 Docker Compose 运行 SonarQube 7.9.2
使用 Docker Compose 运行 Jenkins
Sonarqube 创建令牌
创建地址:{your_sonarqube_server}/account/security/
填写令牌名称,然后创建,令牌记得立即保存,否则后面就看不到了
Sonarqube 配置 Jenkins Webhooks
配置地址:{your_sonarqube_server}/admin/webhooks
Jenkins Webhooks 地址:{your_jenkins_server}/sonarqube-webhook/
Jenkins 安装 Sonarqube 插件
插件列表搜索关键词 SonarQube Scanner for Jenkins
进行安装
Jenkins 配置 Sonarqube Server
创建凭证
创建地址:{your_jenkins_server}/credentials/store/system/domain/_/newCredentials
选择 Sercert text 类型,Sercert 填写 刚创建的 Sonarqube 令牌
,ID 随便写(如:sonarqube)
配置 Server
配置地址:{your_jenkins_server}/configure
添加一个 Sonarqube Server,填写 Name(后面 withSonarQubeEnv 使用的就是这个名称)、Server Url ,选择刚才创建的凭证,然后保存即可
Jenkins Pipeline 使用 Sonarqube
以 Maven 项目为例
pipeline {
agent none
// 定义环境变量
environment {
GIT_URL = 'https://github.com/belier-cn/spring-boot-docker.git'
}
stages {
stage('Checkout') {
agent any
steps {
// 拉取代码,参考文档:https://jenkins.io/doc/pipeline/steps/workflow-scm-step/
checkout([$class: 'GitSCM', branches: [[name: '*/master']], userRemoteConfigs: [[url: GIT_URL]]])
}
}
stage('Build') {
agent {
// 参考文档:https://jenkins.io/zh/doc/book/pipeline/docker/
docker {
image 'maven:3-alpine'
// 挂载目录,如果要配置 maven 的阿里云仓库地址,在 /usr/local/src/maven 下放一个配置好的 settings.xml 文件即可
args '-v /usr/local/src/maven:/root/.m2'
}
}
steps {
withSonarQubeEnv('SonarQube') {
sh 'mvn clean -Dmaven.test.skip=true package org.sonarsource.scanner.maven:sonar-maven-plugin:3.6.0.1398:sonar'
}
}
}
// 等待 SonarQube 执行结束并回调
stage("Quality Gate") {
steps {
// 设置超时时间为1小时,避免一直等待
timeout(time: 1, unit: 'HOURS') {
waitForQualityGate abortPipeline: true
}
}
}
}
}
参考
写的不好,仅供参考