众所周知,我们在开发的过程中,写代码其实只占很小的一部分,更多的时间其实是在设计代码、构建和部署。
代码的设计非常考验代码功底,本人才疏学浅,就不讲解这个部分了。
构建和部署通常来讲没那么复杂,但是却十分繁琐,尤其是手动的方式进行构建部署。重复操作多,流程长,非常消耗耐心和精力。
细心的同学应该发现标题中出现了一个新的名词:CI/CD。
在软件工程中,CI/CD或CICD通常指的是持续集成和持续交付或持续部署的组合实践。CI/CD通过在应用程序的构建、测试和部署中实施自动化,在开发和运营团队之间架起了桥梁。
——引用自维基百科
CI(ContinuousIntegration)指的是持续集成,即项目代码的新更改会定期构建、测试并合并到代码仓库中,有效解决一次开发多个项目分支导致代码冲突问题。
CD(ContinuousDelivery/ContinuousDeployment)指的是持续持续交付/持续部署,即项目代码的新更改可以自动或手动合并到主分支,并在合并至主分支后自动执行构建、测试流程,检测新更改是否对主分支代码产生影响。构建测试通过后,会自动发布并部署至生产环境,有效减轻运维团队负担。
概念说了这么多,肯定很多同学直呼看不懂。没关系,我们找个实际场景。
相信很多初学前端的同学一定有过一个想法:写一个自己的网站放到服务器上。
实现这个想法通常需要以下几个步骤:
编写代码-(单元测试/集成测试)-上传至代码仓库-打包构建-上传至服务器-配置Nginx/Apache将80端口映射至网站文件夹
是不是一个非常长的流程?
当我们有了CI/CD的系统之后,我们就只需要编写代码,剩下的步骤都交给CI/CD系统来处理,这极大地解放了我们的双手,提升了开发效率。
Jenkins简介Jenkins