1 将jenkins和sonar集成

1.1 安装sonar 插件

jenkins上安装sonarqube plugin ,如果没有就安装sonarqube scanner for jenkins这个插件。

持续集成与自动化部署 - jenkins与sonar、gitlab集成 (六)_第1张图片

1.2 关联sonar 插件

1.2.1 系统设置

设置sonar地址

系统管理 > 系统设置 > Add SonarQube > sonarqube servers 修改如下:
持续集成与自动化部署 - jenkins与sonar、gitlab集成 (六)_第2张图片

1.2.2 全局设置

设置sonar扫描器位置

系统管理 > Global Tool Configuration > SonarQube Scanner > 新增 SonarQube Scanner
持续集成与自动化部署 - jenkins与sonar、gitlab集成 (六)_第3张图片

1.2.3 关联项目

选择一个项目 ,配置 > 构建 > Execute SonarQube Scanner >Analysis properties 填写相关参数,保存即可。

sonar.projectKey=demo
sonar.projectName=demo
sonar.projectVersion=1.0
sonar.sources=/server/tools/sonar-examples-4.5/projects/languages/php/php-sonar-runner-unit-tests
sonar.language=php
sonar.sourceEncoding=UTF-8

持续集成与自动化部署 - jenkins与sonar、gitlab集成 (六)_第4张图片

报错之后,就可以就去构建了。

2. 将jenkins Job关联和Pipeline

安装pipeline(做完一件事情,接着做下一件事情。)

2.1 安装pipeline

持续集成与自动化部署 - jenkins与sonar、gitlab集成 (六)_第5张图片

2.2 配置pipeline

持续集成与自动化部署 - jenkins与sonar、gitlab集成 (六)_第6张图片

持续集成与自动化部署 - jenkins与sonar、gitlab集成 (六)_第7张图片
持续集成与自动化部署 - jenkins与sonar、gitlab集成 (六)_第8张图片
点击run开始运行,就开始构建了。
持续集成与自动化部署 - jenkins与sonar、gitlab集成 (六)_第9张图片

2.3 关联相关的job

列如代码上线会经过 ,静态代码检查、单元测试、然后部署服务器、服务器重启、进行ui测试等。

选择第一个要执行的job
持续集成与自动化部署 - jenkins与sonar、gitlab集成 (六)_第10张图片
构建后操作,选择 Trigger parameterized build on other projects
持续集成与自动化部署 - jenkins与sonar、gitlab集成 (六)_第11张图片

添加pipeline

持续集成与自动化部署 - jenkins与sonar、gitlab集成 (六)_第12张图片

3. Jenkins与gitlab集成(Webhook)

3.1 jenkins安装gitlab hook

gitlab Hook Plugin gitlab 钩子
持续集成与自动化部署 - jenkins与sonar、gitlab集成 (六)_第13张图片
Build Authorization Token Root Plugin 安装令牌插件
持续集成与自动化部署 - jenkins与sonar、gitlab集成 (六)_第14张图片

3.2 jenkins配置gitlab钩子

注:jenkins需要使用令牌

[www@test-node3 ~]$ openssl rand -hex 10
c6116ac353aca741f315

持续集成与自动化部署 - jenkins与sonar、gitlab集成 (六)_第15张图片

http://10.0.0.203:8080/project/auto-deploy

持续集成与自动化部署 - jenkins与sonar、gitlab集成 (六)_第16张图片

3.3 gitlab配置钩子

持续集成与自动化部署 - jenkins与sonar、gitlab集成 (六)_第17张图片

持续集成与自动化部署 - jenkins与sonar、gitlab集成 (六)_第18张图片
添加完成之后,可以点击test 来测试。
持续集成与自动化部署 -  jenkins与sonar、gitlab集成 (六)
此时我去提交代码然后,git push ,后面会进行 代码质量检查,然后进行部署。