jenkins学习笔记之十四:SonarSQube项目管理

简介: 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/

相关文章
|
20天前
|
Kubernetes jenkins 持续交付
jenkins学习笔记之二十一:k8s部署jenkins及动态slave
jenkins学习笔记之二十一:k8s部署jenkins及动态slave
|
20天前
|
前端开发 jenkins 持续交付
jenkins学习笔记之二十:docker in docker运行pipeline
jenkins学习笔记之二十:docker in docker运行pipeline
|
20天前
|
jenkins Java 持续交付
jenkins学习笔记之十九:Docker安装jenkins master及动、静态配置slave
jenkins学习笔记之十九:Docker安装jenkins master及动、静态配置slave
|
20天前
|
jenkins 持续交付
jenkins学习笔记之十八:nexus制品获取及晋级
jenkins学习笔记之十八:nexus制品获取及晋级
|
20天前
|
Java jenkins 持续交付
jenkins学习笔记之十七:使用插件及maven上传制品到nexus
jenkins学习笔记之十七:使用插件及maven上传制品到nexus
|
20天前
|
jenkins Java 持续交付
jenkins学习笔记之十六:SonarSQube支持多分支
jenkins学习笔记之十六:SonarSQube支持多分支
|
20天前
|
jenkins API 持续交付
jenkins学习笔记之十五:SonarSQube API使用
jenkins学习笔记之十五:SonarSQube API使用
|
20天前
|
jenkins Java Shell
jenkins学习笔记之十三:配置SonarScanner扫描Java项目
jenkins学习笔记之十三:配置SonarScanner扫描Java项目
|
20天前
|
jenkins Java 关系型数据库
jenkins学习笔记之十二:sonarqube9.9、SonarScanner4.8部署
jenkins学习笔记之十二:sonarqube9.9、SonarScanner4.8部署
|
18天前
|
jenkins 持续交付 开发者
自动化部署:使用Jenkins和Docker实现持续集成与交付
【8月更文挑战第31天】本文旨在为读者揭示如何通过Jenkins和Docker实现自动化部署,从而加速软件开发流程。我们将从基础概念讲起,逐步深入到实际操作,确保即使是初学者也能跟上步伐。文章将提供详细的步骤说明和代码示例,帮助读者理解并应用这些工具来优化他们的工作流程。