Jenkins中部署Sonar程式碼檢查
阿新 • • 發佈:2019-01-11
1 安裝並啟動sonarqube
docker pull sonarqube:7.5-community docker run \ --name sonarqube \ --network ci \ --ip 172.18.0.16 \ -p 9000:9000 \ -d sonarqube:7.5-community
訪問http://ip:9000即可開啟sonarqube頁面,預設使用者名稱密碼是admin/admin,然後生成Tokens
這個Tokens用於和Jenkins進行互動
2 在Jenkins中配置SonarQube伺服器
(1)安裝SonarQube Scanner for Jenkins外掛;
(2)系統管理->系統設定,配置SonarQube伺服器
Name隨便命名,Job中需要用到;Server URL填之前安裝的SonarQube服務的URL;Server authentication token填前面在SonarQube中生成的Token。
3 在gradle中配置Sonar外掛
在編譯指令碼build.gradle中新增以下內容:
plugins { id "org.sonarqube" version "2.6" } sonarqube { properties { property "sonar.projectName", "platform" } }
這裡的sonar.projectName為自定定義的工程名,Sonar檢查完之後會顯示在SonarQube介面。
要執行sonar檢查,只要在jenkins的pipeline指令碼中新增以下內容即可:
stage("sonar-platform") { steps { withSonarQubeEnv('sonar') { sh ''' cd ${project}/platform gradle sonarqube ''' } } }
4 使用sonar檢查js
檢查js程式碼需要在SonarQube上安裝SonarJS外掛,不過docker版本的SonarQube已經自帶了SonarJS外掛,直接使用即可。js檢查需要使用sonar-scanner,需要下載映象:
docker pull mercuriete/sonar-scanner
jenkins指令碼中新增以下內容:
stage("sonar-portal") { steps { withSonarQubeEnv('sonar') { sh ''' docker run --rm \ -v ${project}/portal:/${project}/portal \ mercuriete/sonar-scanner \ sonar-scanner \ -Dsonar.host.url=http://192.168.1.100:9000 \ -Dsonar.projectKey=${project}-portal \ -Dsonar.sources=/${project}/portal/src ''' } } }