方案參考:https://plugins.jenkins.io/sonar-gerrit/
方案組合:
GitLab + Gerrit + Jenkins + SonarQube
說明:
在Docker下部署了GitLab棒口、 Gerrit 酪惭、 Jenkins 硝皂、 SonarQube
理論上支持在現(xiàn)有Gerrit 、 Jenkins部署上添加SonarQube插件實現(xiàn)
Docker
下載Docker Desktop版本:
通過Docker Compose部署GitLab讶迁,Gerrit,Jenkins,SonarQube
本文本地部署如下:
GitLab
無針對SonarQube的特殊配置蚂四,不做配置說明
Gerrit
無針對SonarQube的特殊配置沥阳,不做配置說明
SonarQube
為了測試使用了Docker本地搭建的SonarQube環(huán)境跨琳,理論上可以使用公司的SonarQube
文檔是在Docker搭建的SonarQube,所以訪問地址是http://localhost:9000
創(chuàng)建SonarQube Token
這個Token在配置Jenkins時會用到
進入配置界面桐罕,把SCM開關(guān)打開
Jenkins
版本要求:Jenkins version 1.625.3 or newer is required.
需要下載以下插件:
Gerrit Trigger
沒有針對SonarQube的特殊配置脉让,Jenkins和Gerrit可以聯(lián)動即可
系統(tǒng)管理 -- 系統(tǒng)設(shè)置中配置SonarQube servers
其中Server authentication token是SonarQube配置生成的
生成一個Token,填入到Jenkins配置參數(shù)中:
創(chuàng)建Jenkins任務(wù)時功炮,勾選Prepare SonarQube Scanner environment選項溅潜,選擇配置的SonarQube token
在構(gòu)建時的Action添加Execute SonarQube Scanner:
“sonar.projectKey”可隨意指定
“sonar.sources”指定了源文件路徑
“sonar.java.binaries”是編譯后的class文件的路徑
在構(gòu)建后的Action添加PostSonarQube issues as Gerrit Comments:
配置完后查看構(gòu)建日志:
驗證
- JAVA代碼中加入:
public int testSonar = 0;
- Git提交修改
- 查看Gerrit提交結(jié)果