持续集成
持续集成概念介绍
持续集成模块详解
持续集成(Continuous Integration),简称CI
持续集成概念介绍
百度百科:
持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译、发布、自动化测试)来验证,从而尽早地发现集成错误。
CI的特点:
1.适应快速迭代的版本节奏。尽早编译发布,尽早引入测试,尽早暴露问题。
2.用自动化的方式减少CI带来的额外工作量。
3.并非一成不变的结构,可以像乐高积木一样来按需自行调整。
持续集成模块详解
CI系统架构图:
源码库:
1.较常用git、svn
2.需制定提交代码的相关规则(保证规范)
源码扫描:
1.google搜索特定语言的开源静态扫描工具
2.静态扫描结果一般有部分误报和重复信息,可根据实际情况进行二次开发。
3.根据项目的实际情况,控制静态扫描的频率。可自动化扫描,但对扫描结果需进行分析和确认
4.静态扫描工具,可先使用开源工具,有实际的产出后可考虑使用商业工具
编译打包:
常用工具:ant、maven、gradle
自动测试:(monkey test)
1.目的是预防程序的随机崩溃,
2.选择money测试工具
3.保存或上传崩溃信息
4.对程序中的特定部分进行特殊处理:如安装、运行程序、登录等
自动测试:
1.目的是用于确保版本的稳定功能模块不出问题
2.自动化建议基于控件和log
3.计算投入产出,考虑合适的自动化程度
4.异常处理
5.记录测试结果
结果通知:
将编译结果、扫描结果和测试报告用邮件通知相关负责人
控制器:
1.作用:控制CI的节奏和上述各个功能模块之间的协同。
2.可使用jenkins
3.CI的触发方式:使用jenkins的话,可选择"
Poll SCM
" (定时检查版本库,发现有新的提交就触发构建。这种方式对git、SVN等所有版本管理系统都是通用的),可在日程表中设置定时时间。
关于更多Jenkins的安装及基础使用,推荐:
http://www.liaoxuefeng.com/article/001463233913442cdb2d1bd1b1b42e3b0b29eb1ba736c5e000