学习内容 1
【干货】闲鱼工程师是如何构建继续集成流水线,让研发效率翻倍的
精益开发模式 2-1-1 2 周需要交付周期 1 周需要开发周期 1 小时集成时长
面临的要求和挑战
- 业务对交付响应工夫越来越快 (速度为王 反摩尔定律,交付工夫越迟 商品价值打折就越厉害)
- 团队规模变大,我的项目沟通成本上升(多个平台,多个角色协同老本越来越高)
- 多分支并行减少额定老本(精益开发的外围扭转是各个需要独立不影响,别离进行测试和集成,放弃骨干的稳固)
- 随时来的提测都能测(如何更好的应答测试)
所以 构建一个从需要到代码开发,再到测试的流程,并将其工具化,自动化就显得十分必要和紧迫,而继续集成就是这一流程的重要模式体现
名词解释 精益开发模式,团队基于看板组织合作,以继续地交付需要为指标,需要按优先级,逐渐进入开发、提测。
客户端继续集成的难点
-
如何将研发过程各环节关联起来 要害流动包含 创立需要 -> 创立代码分支 -> 创立打包我的项目 -> 提交代码 -> 打包 -> 提交测试 -> 修复 -> 提交集成 -> 公布
- 如何做到需要和代码分支关联 确保代码可追溯
- 如何做到做到代码分支和打包我的项目关联,代码变动可主动触发打包
- 如何做到代码范畴和测试范畴关联,确保测试回归范畴
- 多分支并行 如何进行井井有条的进行集成
- 如何做到一提交代码就触发测试,测试进一步左移
- 如何升高自动化测试老本
流程化
外围流程是 一建设需要分支,交付通道就已建设,直到需要公布。
- 首先开发依照标准创立需要分支,主动将分支和需要进行绑定,同时创立打包我的项目将需要和打包地址绑定,这样一旦提交代码,就能够依据需要,代码提交内容,给出影响范畴,触动主动打包,每次变更都会触发打包
- 打包胜利后,依据 merge,requestpush,定时等不同的触发形式,主动触发相应的测试件,进行一系列的自动化测试
- 测试件执行完后,执行后果会主动反馈,帮助团队可能继续发现问题从而进步集成指令
实现第一步后,发现整个流程中,很多是依赖人工操作的,容易出错,影响效率
无人化
为了撑持流水线的运行,以无人化,自动化,可扩大为指标,次要分为精益开发流程协同撑持无人化及测试验证自动化两局部
fish CI 次要是研发流程撑持,入需要绑定 监听变更 触发打包 触发测试 fish guard 次要测试件调度,执行,后果告诉 以及后续测试件扩大 次要测试件包含 UI 辨认 UI 遍历 Monkey 单元测试 后续减少 动态扫描 扩大本人的自动化测试边界
数据度量
如果你无奈度量它,你就无奈改良它
指标次要分为响应能力,效率,品质三个维度
总结与布局
简略总结下,咱们做得事件,第一步是拉通整个交付过程,有一个稳固的交付过程,第二步保障交付的效率,即响应变快了,集成变快了,品质反馈变快了,第三步继续交付,关键词是“继续地”,频次上提出了更高的要求,集成的频率变高了,以前一个月集成一次,当初每天都能集成,从一个月一次,到 nightly build,再到随时集成。即相比以前,让开发同学“更”有信念集成一次变更并公布。
自动化工具 appium jenkins