Jenkins使用sonarqube代码扫描并发送扫描报告邮件
jenkins中使用例子:#定义sonar项目名称sonar_url=bus-pub#邮件接收人send1=111111111@qq.comsend2=222222222@qq.comsend3=#重新下载对应项目扫描报告rm -f JOBNAME.pdfwgethttp://192.168.20.243:9000/api/pdfreport/get?componentKey={J...
jenkins中使用例子:
需要sonarqube已安装对应版本的sonar-pdf-plugin插件
且邮箱需要在Jenkins主机上配置和安装mail,wget
同时jenkins打包过程中要配置好使用sonarqube扫描,也可以单独新建代码扫描项目
在jenkins项目构建打包完成后添加执行shell脚本,输入如下:
#定义字符集
export LANG="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"
#定义sonar项目名称
sonar_url=bus-pub
#邮件接收人
send1=1111111111@qq.com
send2=222222222@163.com
send3=333333333@outlook.com
#重新下载对应项目扫描报告
rm -f ${JOB_NAME}.pdf
#从sonarqube的sonar-pdf-plugin插件下载代码扫描报告
wget http://192.168.20.243:9000/api/pdfreport/get?componentKey=${sonar_url} -O ${JOB_NAME}.pdf
#邮件需要包含的内容写入临时文件
echo "${JOB_NAME}-第${BUILD_NUMBER}次代码扫描报告" > mail.txt
echo "项目名称 : ${JOB_NAME}" >> mail.txt
echo "构建编号 : 第${BUILD_NUMBER}次构建" >> mail.txt
echo "代码路径 : ${GIT_URL}" >> mail.txt
echo "代码分支 : ${GIT_BRANCH}" >> mail.txt
echo "构建日志 : ${BUILD_URL}consoleText" >> mail.txt
echo "构建Url : ${JOB_URL}" >> mail.txt
echo "工作目录 : ${WORKSPACE}" >> mail.txt
#发送邮件附件为扫描报告(有乱码使用)
sudo mail -s "=?UTF-8?B?`echo ${JOB_NAME}第${BUILD_NUMBER}次代码扫描报告 | base64`?=" ${send1},${send2},${send3} < mail.txt -A ${WORKSPACE}/*.pdf
#发送邮件附件为扫描报告(无乱码直接使用)
#sudo mail -s "echo ${JOB_NAME}第${BUILD_NUMBER}次代码扫描报告" ${send1},${send2},${send3} < mail.txt -A ${WORKSPACE}/*.pdf
wget后地址为sonarqube的sonar-pdf-plugin插件的pdf测试报告下载链接,访问sonarqube对应项目找到测试报告下载链接
部分变量为Jenkins自带的全局变量,可以在jenkins添加shell时点击旁边说明链接看到
测试环境为ubuntuLTS18.04,不同系统可能有稍许不同,且部分邮箱可能会将邮件归类垃圾邮件,需要手动设置邮箱的白名单,或者是发送服务器添加发件人详细信息和安装sendmail,postfix
mail命令说明
1.调用Jenkins主机的mail发送邮件,mail命令用法如下
#以/tmp/mail.txt的内容为邮件内容、test1为邮件标题发信至111111111@qq.com
#并添加附件/tmp/test.pdf
mail -s test1 111111111@qq.com < /tmp/mail.txt -A /tmp/test.pdf
2.将标题强制转换为UTF-8格式,如无乱码则可以去掉=?UTF-8?B?xxxxxxx | base64这一段直接使用如下
sudo mail -s "echo ${JOB_NAME}第${BUILD_NUMBER}次代码扫描报告" ${send1},${send2},${send3} < mail.txt -A ${WORKSPACE}/*.pdf
3.邮箱变量,多个邮箱用逗号分隔
${send1},${send2},${send3}
4.将mail.txt内容作为邮件正文
< mail.txt
5.附加附件
-A ${WORKSPACE}/*.pdf
更多推荐



所有评论(0)