# CI/CD
# 思维脑图

前端部署一般流程:获取代码 ==> 安装依赖 ==> 源码构建 ==> 产物打包 ==> 推送代码 ==> 重启服务
# 本地部署的优劣势
优势:
- 无需重新拉取代码
- 包含最新依赖
- 可以增量构建
- 可以快速调试
劣势:
- 环境一致性
- 操作系统
- node版本
- 本地和服务器环境
- 过程一致性
- 可回溯性
- 日志,本地只有临时日志
- 产物,通常部署系统中会留存最近几次部署的构建产物包
- 人员分工
# CI/CD
持续集成(Continuous Integration,CI)和持续交付(Continuous Delivery,CD),是软件生产领域提升迭代效率的一种工作方式:开发人员提交代码后由 CI/CD 系统自动化地执行合并、构建、测试和部署等一系列管道化(Pipeline)的流程,从而尽早发现和反馈代码问题,以小步快跑的方式加速软件的版本迭代过程。
这个过程通常是各系统(版本管理系统、构建系统、部署系统等)以自动化的方式协同完成的。而本地部署依赖人工操作,所以并不支持这种自动化的处理过程。
# 自动化部署工具
Jenkins
CircleCI
Github Actions
Gitlab CI