jenkins学习笔记之十四:SonarSQube项目管理
一、创建质量配置及关联项目
1.新建一个java代码质量配置
2.为配置添加规则
确认有4条规则了
为项目更换扫描配置
二、创建质量阈关联项目
1.创建质量阈
2.管理项目
3.添加指标
三、SonarSQube集成到pipeline
1.创建API访问凭证
2.创建sharelibrary
//封装HTTP
def HttpReq(reqType,reqUrl,reqBody){
def sonarServer = "http://192.168.1.134:9000/api"
result = httpRequest authentication: 'sonar-admin',
httpMode: reqType,
contentType: "APPLICATION_JSON",
consoleLogResponseBody: true,
ignoreSslErrors: true,
requestBody: reqBody,
url: "${sonarServer}/${reqUrl}"
//quiet: true
return result
}
//获取Sonar质量阈状态
def GetProjectStatus(projectName){
// http://192.168.1.134:9000/api/project_branches/list?project=demo-maven-service
// {"branches":[{"name":"main","isMain":true,"type":"BRANCH","status":{"qualityGateStatus":"OK"},"analysisDate":"2023-03-15T21:54:57+0800","excludedFromPurge":true}]}
apiUrl = "project_branches/list?project=${projectName}"
response = HttpReq("GET",apiUrl,'')
response = readJSON text: """${response.content}"""
result = response["branches"][0]["status"]["qualityGateStatus"]
//println(response)
return result
}
3.修改jenkinsfile,新增以下内容
def sonarapi = new org.devops.sonarapi()
sleep 3
tools.PrintMes("获取扫描结果","green")
result = sonarapi.GetProjectStatus("${JOB_NAME}")
println(result)
if (result.toString() == "ERROR"){
toemail.Email("代码质量阈错误!请及时修复!",userEmail)
error " 代码质量阈错误!请及时修复!"
} else {
println(result)
}
4.安装插件
5.验证
参考文档:
https://docs.sonarqube.org/latest/analyzing-source-code/analysis-parameters/
https://docs.sonarqube.org/latest/analyzing-source-code/languages/java/
"一劳永逸" 的话,有是有的,而 "一劳永逸" 的事却极少