说明:因项目需求,创建的是一个Jenkins自由项目,需要sonar代码扫描通过再继续maven构建、并且不发送钉钉告警,扫描不通过则停止构建、并发送钉钉告警。
#下载release包 /releases/dingding-sonar-1.0-SNAPSHOT.jar
wget https://gitee.com/chejiangyi/dingding-sonar/repository/archive/master.zip
unzip master.zip
#运行jar包 sonar.url为sonar安装地址
cd dingding-sonar/releases
#启动服务
nohup java -jar dingding-sonar-1.0-SNAPSHOT.jar \ --server.port=8082 \ --sonar.url=http://192.168.0.129:9000 \ > /dev/null 2 >& 1 &
#检查部署成功 sonar-project-id 为sonar的项目id:task-dev
curl http://<your dingding-sonar-server IP>:8082/?projectname={sonar-project-id}
bug:0,漏洞:0,坏味道:58,覆盖率:0.0,重复:0.0,状态:OK
2、发送告警通知
钉钉通知发布脚本内容示例:
#!/bin/bash projectName=task-dev projectId=task-dev dingdingToken=a9c7f0dff01a01cefda6af09e5d0ec068a55d755008c2f559ec2598e9f377djl #钉钉群组创建一个自由的webhook的token sonarreport=$(curl -s http://192.168.0.121:8082/?projectname=${projectName}) sonar=$(curl -s http://192.168.0.121:8082/?projectname=task-dev |awk -F ":" '{print $7}'|tee dev.txt) echo "$sonar" if [[ "$sonar" == "ERROR" ]] then echo ${sonarreport} curl -s "https://oapi.dingtalk.com/robot/send?access_token=${dingdingToken}" -H "Content-Type: application/json" -d "{ \"msgtype\": \"markdown\", \"markdown\": { \"title\":\"sonar代码 质量\", \"text\": \"## Sonar代码质量报告 \n >${projectName} \n > [sonar地址](http://192.168.0.129:9000/dashboard?id=${projectId}) \n > ${sonarreport} \n\" } }" exit 1 else echo ${sonarreport} fi