目的
对于小组内部PHP代码进行定期检测及分发
1. 需要定期从svn 或者git拉取指定代码
2. 对代码库内部门模块进行隔离或者删除,不参与检测
3. 为小组内人员定期发送邮件,
4. 可分配具体bug 给具体小组内人员
jenkins安装及安装插件
1. sonar搭建可以参考 [之前文章:sonarqube For PHP 代码质量管理][1]
2. jenkins环境搭建:略过
3. jenkins 插件安装:略过
- SonarQube Scanner for Jenkins
- Localization: Chinese (Simplified)
- Email Extension Template Plugin
效果图
- 首页有任务视图

- 视图执行

- 定时邮件发送

- 指定bug分配通知到指定人

- sonar notify

系统管理-系统设置(全局设置和路径)
- sonar配置
- 基本配置
- 邮件插件配置
- 默认邮件配置
我的视图-具体项目配置
- 构建选项及工作空间等设置

- 源码管理(git svn 等任君配)

- 定时功能(可以点击蓝问号)

- pull代码后剔除无关代码

- 执行sonar配置,与cli 执行sonar的properties文件一致,-X为debug模式

- 邮件内容配置,我此处只是把固定项目的sonar 地址写在邮件里,可以选择增加附件(attachments),也可以增加模版(templates)

sonarqube中通知(notification)配置
- 创建用户(组)

- 分配项目,提醒
- 设置关注项目及事件

- 分配给具体人

自动化

rm -rf /
cd /var/lib/jenkins/workspace/sonar_svn_trunk/cctrunk
rm -rf assets
rm -rf css
rm -rf js
rm -rf template
rm -rf images
rm favicon.ico
rm robots.txt
cd /var/lib/jenkins/workspace/sonar_svn_trunk/trunk/app/libraries
ls |grep -v platform | xargs rm -rf
cd /var/lib/jenkins/workspace/sonar_svn_trunk/trunk/app
rm -rf third_party
rm -rf views
rm -rf language
find . -name 'index.html' | xargs rm -rf
find . -name '*.pem' | xargs rm -rf
find . -name '*.conf' | xargs rm -rf
sonaradmin@es_master:/usr/local/sonar/sonarqube-7.3/bin/linux-x86-64$ ./sonar.sh start
一些问题
- svn 鉴权失败。由于sonar拉取有.svn文件会自动拉取。那么需要在sonar后台关闭这个选项
- sonar中文插件
- Error sending to the following VALID addresses:
保持账户拥有者和发送邮件smpt一致
- because your SCM claimed this was associated with a user ID *
Manage Jenkins -> Configure System -> Extended E-mail Notification
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。