综述:
依托Jenkins自动化平台管理,首先在用户提交代码(主要是master或者保护分支上的提交)时触发Jenkins构建,在Jenkins中使用SCM工具得到最新代码,然后build,使用SonarQube进行分析。将分析结果以邮件发送给代码提交者。并在代码管理平台上发送pull request请求。
工作环境:
代码管理:stash(Bitbucket Server)
自动化工具:jenkins
代码质量分析:SonarQube
插件:
1.stash中需要安装Bitbucket Server Webhook for Jenkins插件。用于在代码提交之后触发Jenkins Job的构建操作。
2.Jenkins中需要安装SonarQube Plugin。用于在代码构建之后进行分析。
3.Jenkins中安装Stash pullrequest builder plugin。用于在构建完成之后向stash发送pull request请求。
自动化测试流程:
1.在Jenkins中建立两个job,一个是构建job,例如:buildjob,另一个是邮件Job,例如:emailjob
2.在buildjob中拉取代码。通过git命令获得代码提交者的邮件,提交时间等。存入公共文件。文件规则可以自行拟定。(遇到Jenkins存在节点的情况,可以使用NFS挂载的方式实现文件共享。)
3.build项目,并使用SonarQube进行代码分析。此时的分析结果会存在Jenkins控制台。
4.在emailjob中,首先读取公共配置文件。读取收件人信息,邮件标题,Jenkins任务名,构建号等。通过Jenkins CLI读取上一步中控制台的内容,提取相关信息作为邮件正文。
5.发送邮件。
6.在buildjob中向stash提交一个pull request请求。项目所有者看到pull request对代码review,然后决定时候合并代码。
END
补充:
在发邮件时,可以考虑将每次master或其它保护分支上的提交不仅发给代码提交者,还发给项目所有者。以便其进行审核。