天天看點

Sonarquber之Gerrit建構後自動發送郵件

Sonar(SonarQube)是一個開源平台,用于管理源代碼的品質。Sonar 不隻是一個品質資料報告工具,更是代碼品質管理平台。支援的語言包括:Java、PHP、C#、C、Cobol、PL/SQL、Flex 等。

主要特點:

代碼覆寫:通過單元測試,将會顯示哪行代碼被選中

改善編碼規則

搜尋編碼規則:按照名字,插件,激活級别和類别進行查詢

項目搜尋:按照項目的名字進行查詢

對比資料:比較同一張表中的任何測量的趨勢

Sonarquber之Gerrit建構後自動發送郵件

架構圖:

Sonarquber之Gerrit建構後自動發送郵件

1.首先需要配置Gerrit Trigger 插件:

Sonarquber之Gerrit建構後自動發送郵件

2.進行配置:

Sonarquber之Gerrit建構後自動發送郵件

3.Gerrit調整配置,進行測試已經可以通路。

Sonarquber之Gerrit建構後自動發送郵件

4.插件安裝完成夠進行配置gerrit event。

Sonarquber之Gerrit建構後自動發送郵件

5.配置Gerrit Project

Sonarquber之Gerrit建構後自動發送郵件

6.檢查Query

Sonarquber之Gerrit建構後自動發送郵件

7.檢查是否可以成功檢視送出的代碼。

Sonarquber之Gerrit建構後自動發送郵件

8.發現已經送出代碼後自動build。

Sonarquber之Gerrit建構後自動發送郵件

9.配置Sonar生成後的報告自動發送到郵箱;

Sonarquber之Gerrit建構後自動發送郵件
Sonarquber之Gerrit建構後自動發送郵件

10.調用GERRIT_PATCHSET_UPLOADER_EMALL 參數;

Sonarquber之Gerrit建構後自動發送郵件

11. Shell 配置部分;

cd  /export/sonar-scanner/bin &&

./sonar-scanner -e -Dsonar.host.url=http://localhost:9000  -Dsonar.scm.disabled=true -Dsonar.language=java -Dsonar.projectName=ai-access -Dsonar.projectVersion=1.0.0 -Dsonar.projectKey=ai-access  -Dsonar.sources=/export/jenkins/workspace/ai-access  -Dsonar.projectBaseDir=/export/jenkins/workspace/ai-access  -Dsonar.java.binaries=target/sonar  -Dsonar.java.binaries=src -Dsonar.java.source=1.8

echo "SVN版本号:${SVN_REVISION}"

git --version

export LANG="zh_CN.UTF-8"

export LC_ALL="zh_CN.UTF-8"

sonar_url=http://192.168.180.251:9000/dashboard?id=ai-access

[email protected]

rm -f ${JOB_NAME}.pdf 

#郵件需要包含的内容寫入臨時檔案

echo "${JOB_NAME}-第${BUILD_NUMBER}次代碼掃描報告" > mail.txt

echo "項目名稱 : ${JOB_NAME}" >> mail.txt

echo "建構編号 : 第${BUILD_NUMBER}次建構" >> mail.txt

echo "代碼路徑 : ${SVN_URL}" >> mail.txt

echo "代碼路徑 : ${WORKSPACE}" >> mail.txt

echo "建構日志 : ${BUILD_URL}consoleText" >> mail.txt

echo "建構Url : ${JOB_URL}" >> mail.txt

echo "SonarQube報告位址(點選浏覽): ${sonar_url}" >> mail.txt

sudo mail -s "=?UTF-8?B?`echo ${JOB_NAME}第${BUILD_NUMBER}次代碼掃描報告 | base64`?=" ${GERRIT_PATCHSET_UPLOADER_EMAIL} < mail.txt  ${sonar_url}

sudo mail -s "=?UTF-8?B?`echo ${JOB_NAME}第${BUILD_NUMBER}次代碼掃描報告 | base64`?=" ${send1} < mail.txt  ${sonar_url}

配置完成;