Jenkins中部署Sonar代碼檢查

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
      '''
    }
  }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章