前述
我是前端从业人员嘎子,最近一直忙于工作和个人的事情,一直没有来得及更新文章,今天空闲了把我做的一部分前端CI相关的事情整理了一下,希望可以帮助到一部分同学。
什么CI
Continuous Integration 持续集成,自动化测试和验证需要被合并的代码,以确保这些代码符合规范,对生产环境不会造成破坏,尽早发现个人开发部分的问题。
CI可以解决哪些问题呢
(规则是可以根据自己团队的习惯和规范自由设置)
- lint 代码规范
- 一个团队还是需要一个统一的代码规范的,无论是对自己开发,还是同事间协作都可以节省很多不必要的事情
- 代码合并冲突
- 避免将冲突代码合并到主分支发布到生产环境
- 代码复杂度
- 程序自动分析代码的复杂度,可以有效的帮助开发者优化代码
- 代码重复度
- 减少不必要的重复,可以提炼出来的代码尽可能不要复制
- 图片大小
- 比如在移动端加载一个300kb以上的图片实际上是不友好的,浪费cdn资源还会让加载体验降低
上述问题是可以在本地开发阶段进行检测的,那如何设计CI的流程呢?
CI流程设计
我采用的是本地 + 远程监测
本地流程设计
与git hooks结合
结合git cz使用
- 开发完成后执行git命令时触发
- 执行ci命令开始检测
- 检测异常退出git进程
注意这个地方是可以使用Git的操作跳过的,所以会加上远程监测
远程流程设计
与Jenkins结合使用,也可以与gitlab hooks结合使用
防止本地跳过检测以后远程还可以进行拦截
Jenkins CD流程演示
想要使用Jenkins 实现CD集成可以参考下我的这篇文章
前端 Jenkins + gitee 持续集成,详细教程
CI集成流程大致就是上述内容了,后续空闲时间会持续更新lint、代码重复度、代码复杂度的检测实现,希望可以帮助到部分同学