前言

前面已经有介绍sonar的安装,简单应用,下面在简答的研究一下sonar和jenkins集成的简单使用,对于sonar的安装不做介绍

一 sonar的简单介绍

持续检查避免了低质量的代码,比如SonarQube工具就能够帮助我们完成此项。每次代码提交后,在代码上就会执行代码分析。

分析是基于代码分析工具中定义的一些规则,如果代码通过了错误阀值,那么它会允许到生命周期的下一步,如果超过了设定的阀值,那么直接返回错误。

SonarQube是代码质量管理工具,允许团队去管理,追踪和改善他们的源代码质量,它是包含了规则,告警和阀值的一个基于WEB的应用。它包含了七种类型的代码质量参数,分别是加构和设计,重复,单元测试,复杂度,潜在bug,编码规则和评论。

SoanrQube是一个开源的工具,支持几乎所有的流行语言,并且能够和CI工具有效的集成执行持续检查。

目前已经有的工具

Jenkins:192.168.132.131

Gitlab:192.168.132.132

Sonar:192.168.132.133

Artifactory:192.168.132.134

二 配置sonar

2.1 生成token

生成一个token,这个token是sonar和Jenkins连接的钥匙

DEVOPS技术实践_11:Jenkins集成Sonar-LMLPHP

生成token

DEVOPS技术实践_11:Jenkins集成Sonar-LMLPHP

token:278c0c5ddadca63754f0fa9ce50ba99c20214fb5

DEVOPS技术实践_11:Jenkins集成Sonar-LMLPHP

2.2 在SonarQube中创建一个项目

(1) 点击Administrator | Projects (tab) | Management

(2) 点击Create Project按钮, 并填写信息如下。

DEVOPS技术实践_11:Jenkins集成Sonar-LMLPHP

创建成功后应该显示信息如下。

DEVOPS技术实践_11:Jenkins集成Sonar-LMLPHP

2.3 针对SonarQube安装build breaker插件

该插件允许CI system(Jenkins)在质量门的条件不能够满足的情况下,强制Jenkins构建失败。安装插件,执行以下步骤。

安装插件之前,先去查看一下兼容性列表,可以查看以下网址。兼容性列表

下载构建代理插件,下载地址

切换到/tmp目录和下载构建代理插件,使用以下命令。

[root@node3 ~]# cd /tmp/

[root@node3 tmp]# wget https://github.com/jbocc/sonar-build-breaker/releases/download/2.2/sonar-build-breaker-plugin-2.2.jar

移动.jar文件到/home/sonar/sonarqube/extensions/plugins/目录下

cp sonar-build-breaker-plugin-2.2.jar   /home/sonar/sonarqube/extensions/plugins/

[sonar@node3 ~]$ ./sonarqube/bin/linux-x86-64/sonar.sh restart

DEVOPS技术实践_11:Jenkins集成Sonar-LMLPHP

重新启动完成后,应该看到界面有Build Breaker选项了。

DEVOPS技术实践_11:Jenkins集成Sonar-LMLPHP

2.3 创建质量门

针对想要breaker plugin起作用,去工作,那么需要创建quality gate, quality gate只是一些条件。当jenkins运行的时候,它执行quality profiles和quality gate. 假如quality gate检查通过,那么Jenkins pipeline继续,假如检查失败的话,那么Jenkins pipeline将会终止,但分析会存在的。

2.3.1 点击Quality Gates

DEVOPS技术实践_11:Jenkins集成Sonar-LMLPHP

2.3.2 点击添加条件

DEVOPS技术实践_11:Jenkins集成Sonar-LMLPHP

2.3.4添加条件信息如下

DEVOPS技术实践_11:Jenkins集成Sonar-LMLPHP

配置建的项目使用创建的质量门。

DEVOPS技术实践_11:Jenkins集成Sonar-LMLPHP

DEVOPS技术实践_11:Jenkins集成Sonar-LMLPHP

DEVOPS技术实践_11:Jenkins集成Sonar-LMLPHP

DEVOPS技术实践_11:Jenkins集成Sonar-LMLPHP

三 jenkins集成sonar

3.1 在jenkins中安装sonar插件

DEVOPS技术实践_11:Jenkins集成Sonar-LMLPHP

在Jenkins中配置SonarQube

3.2 在管理jenkins的系统设置配置

DEVOPS技术实践_11:Jenkins集成Sonar-LMLPHP

需要自己添加凭据

DEVOPS技术实践_11:Jenkins集成Sonar-LMLPHP

暂时配置完成

05-11 18:11