背景
在前后端不分离的时代下,通常部署都是后端同学做的,常见的有 nginx apache tomcat,这些部署方式比较繁琐,需要前端同学配合运维或者是后端同学。即使在现在使用了主流框架,react、vue,采用了前后端分离架构,前端打包生成产物,可能还是需要,登录服务器,上传文件,手动刷新CDN。随着业务迭代速度过快,部署就可能消耗大量时间成本,而且手动部署可能造成很多奇怪问题。
前端工程化
所有能降低成本,并且能提高效率的事情总称为工程化。在前端项目中能够减少重复工作、扩展 javascript\html\css 本身的语言能力、解决功能复用和变更问题、解决开发和产品环境差异问题、任何时间任何地点生成可部署的软件、解决发布流程问题,都属于前端工程化
什么是持续集成
持续集成是前端工程化中的一部分,是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括自动化编译,自动化测试,自动化发布)来验证项目代码,从而尽早地发现错误。
OSS
OSS 是阿里云提供的一个云存储服务,这里我们用它来作为 web 容器。
Jenkins
Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,主要用于持续、自动的构建/测试软件项目、监控外部任务的运行
webhooks
钩子功能(callback),是帮助用户 push 了代码后,自动回调一个你设定的 http 地址。 这是一个通用的解决方案,用户可以自己根据不同的需求,来编写自己的脚本程序(比如发邮件,自动部署等)
从零开始搭建前端持续集成方案
1. 准备
- 开通阿里云 OSS 服务,创建子账号
- 搭建好 Jenkins,现在使用 docker 部署挺方便的
- 代码托管码云,github、gitLab