sonar-gerrit plugin配置

配置 sonar-gerrit plugins steps
pre-condition:
1. Sonarqube(5.5及以上,本文使用的版本爲6.1.3)
關於如何安裝配置Sonarqube,請參考其餘文檔
2. Gerrit(2.11及以上,本文使用版本爲2.13.2)
關於如何安裝配置Gerrit,請參考其餘文檔
3. Jenkins(1.7及以上,本文使用版本爲2.35)
關於如何安裝配置Jenkins,請參考其餘文檔
4. Gerrit-Trigger (本文使用版本爲2.23)
5. Sonar-scanner (本文使用版本爲2.8)
6. sonar-gerrit-plugin(本文使用版本爲1.0.7.6)
7. sonar-gerrit-plugin-2.3.0.jar

Steps:
1. sonar-gerrit-plugin-2.3.0.jar 將jar包複製到$SONARQUBE_HOME/extensions/plugins/下

2. 以admin用戶登陸sonarqube dashboard -> Administration -> Security -> Users

3. 選擇要使用的user生成user token,該token做爲jenkins登陸sonarqube的用戶憑證,保存好token。
4. 登陸jenkins -> 系統管理 -> 系統設置 -> SonarQube servers
Name:${SonarQube servername}
Server URL : $SONARQUBE_URL
Server version : 5.3 or higher
Server authentication token:填入step3生成的token
點擊保存

5. 以admin用戶登陸jenkins -> 系統管理 -> Gerrit Trigger
參考jenkins-gerrit-config.md內容配置
*****注意*****
點擊高級
check Use REST API
Gerrit HTTP Username(jenkins發送sonarqube掃描結果至gerrit使用的帳戶)
Gerrit HTTP Password(jenkins發送sonarqube掃描結果至gerrit使用的帳戶)
check Enable Code-Review
check Enable Verified
點擊保存

6. 以admin用戶jenkins -> 系統管理 -> Global Tool Configuration
SonarQube Scanner -> SonarQube Scanner安裝
SONAR_RUNNER_HOME ${SONAR_RUNNER_HOME}
點擊保存

7. 建立jenkins job
新建-> 新建一個maven風格的項目
源碼管理:選擇Git
Repository URL: gerrit 代碼倉庫
Credentials:選擇鏈接gerrit帳號
Branches to build:*/master
構建觸發器
選擇Gerrit Event
Gerrit Trigger :
Choose a Server 選擇step5的gerrit servername
Trigger on : 根據項目須要修改
參考jenkins-gerrit-config.md內容配置

8. Post Steps 增長Execute SonarQube Scanner
其餘保留設爲空
Additional arguments 增長如下配置:
-X (打印debug級別日誌)
-DGERRIT_SCHEME=http (以http協議鏈接gerrit)
-DGERRIT_HTTP_AUTH_SCHEME=digest (gerrit默認的http認證)
-DGERRIT_HOST=gerrit.me (gerrit host)
-DGERRIT_HTTP_PORT=80  (訪問gerrit web的端口)
-DGERRIT_HTTP_USERNAME=$gerrit_user (jenkins登陸gerrit使用的帳號)
-DGERRIT_HTTP_PASSWORD=$password (jenkins登陸gerrit使用的帳號)
-Dsonar.analysis.mode=preview (要生成sonar-gerrit-plugin要求的報告,必須使用preview mode)
-Dsonar.issuesReport.html.enable=true (sonar報告生成html格式)
-Dsonar.report.export.path=sonar-report.json (sonarqube報告的格式)

9. 增長構建後操做 Post Action
SonarQube Settings:
SonarQube URL: SonarQube 的訪問地址
SonarQube report path: .sonar/sonar-report.json (sonarscanner掃描完成後會在workspace下生成.sonar文件夾,sonar-report.json報告存放在.sonar下)
Filter Settings:
Report issues having severity level higher or equal to:Major (反饋至gerrit的時候的issue 級別,可修改)
其餘保持默認,點擊保存

舉例以下:
當向gerrit trigger監聽的project/branch發生變化時,便可觸發jenkins job execution, 執行效果參考
https://wiki.jenkins-ci.org/display/JENKINS/Sonar+Gerrit

jenkins wiki寫的比較簡略,其餘隱藏條件沒有寫的很清楚
花了一天時間,查了各類github, stackoverflow,還拉了插件源碼下來,終於搞定了,寫個blog記念一下。html

補充踩過的坑:git

若是不用admin帳戶進行操做,確保如下幾點:github

1. jenkins用於gerrit的帳戶屬於NonInactive Usersweb

2. 監聽的project繼承的user group必須包含jenkins user且屬於owner權限json

另外一坑:maven

jenkins管理員郵箱必須與smtp認證的帳號保持一致,才能發郵件ui

相關文章
相關標籤/搜索