jenkins集成sonar、gitlab实现合并mr后的code check

默认jenkins、gitlab、sonar服务都搭建完成

jenkins

插件安装

在jenkins-系统管理-插件管理-可选插件搜索SonarQube Scanner for Jenkins安装,安装完成后重启jenkins

1.png
2.png

全局工具配置

在jenkins-系统管理-全局工具配置里配置SonarQube Scanner,选择自动安装

3.png
4.png

凭据配置

在jenkins-系统管理-凭据中配置sonar的key,类型选择secret text,secret就填在sonar中创建的key

5.png
6.png
7.png

系统配置

在jenkins-系统管理-系统配置里配置SonarQube servers,其中Server authentication token为上面在jenkins添加的全局key,Server URL为sonar平台地址

8.png
9.png

job创建

1.源码管理正常配置,和项目构建一样配置,检测的是master分支,可以自己修改

2.构建触发器,选择第四个,后面的url复制一下,在后面配置gitlab会用到,选择push events(这里说一下,应该是选择Accepted Merge Request Events,但是目前sonar不支持,所以还是在mr合并后检测master)

3.再点进高级选项,下面会生成一个secret token,,复制一下,在后面配置gitlab会用到

4.在构建选择Execute SonarQube Scanner,然后在Analysis properties中填入以下信息

# 项目标识符,在给定的 SonarQube 中必须是唯一的,这里就填入在sonar上创建的项目名称,不然在检查完毕后会再次新建一个
sonar.projectKey=demo
# 项目名称,这是 SonarQube 中显示的名称,这里和projectKey一样就行
sonar.projectName=demo
# 项目版本号
sonar.projectVersion=1.0
# 以下定义可在项目根目录新建 sonar-project.properties 文件, SonarQube 会默认读取该文件,
# 指定工程源文件所在的目录, "./"可表示根目录,在 Windows 系统使用时注意用"/"代替"\"
sonar.sources=./src
10.png
11.png
12.png
13.png

至此jenkins配置完成

gitlab

webhook配置

在gitlab项目下的settings中找到integrations settings(需要权限),将刚刚在jenkins的job中拿到的url和token配置进去,选择push event,和jenkins保持一致

14.png

测试

手动构建一下jenkins,看sonar server是否工作正常

在项目下提一个mr,合并后,查看jenkins任务是否自动构建

你可能感兴趣的:(jenkins集成sonar、gitlab实现合并mr后的code check)