天天看点

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}

配置完成;