我们说到持续集成,那肯定就是ci,cd,有些人认为cd持续部署,有些人认为是持续交付,但是我觉得是两者都有,Conitinuous Delivery,Continuous Deployment,
对于ci(持续集成),开发人员代码频繁提交到版本控制系统(git)并进行自动化构建、测试、部署操作。
cd(持续交付),在ci基础上,实现自动化部署,测试。优化软件交付时间,这个很抽象了。换一个说法
ci大部分网上的说法是,代码提交,到代码检查,代码集成,代码测试,cd1(deploy)就是把集成产物代码部署了,然后进行验证,监控,cd2(交付),其实是一种反馈系统,对系统录入反馈
通常对于我们开发来说,步骤如下:
git push代码,触发git钩子,执行服务器脚本(通常shell命令),一般脚本会执行打包,然后把产出再push到仓库,然后再执行部署,当然最后一步部署,就完全是看企业环境了。
上面的步骤,其实有很多工具可以实现了
例如钩子,企业级别的开发,基本上都会有私服gitlab,gitlab也已经做了一般ci,项目中其实都只需要更改配置文件**.gitlab-ci.yml**即可,具体细节这里就不整了,流程如下
再例如build+部署,可以用jenkins
当然,可能有些场景,有些企业,直接使用其中一项就行了,因为其实这两个其实都能够实现ci,cd,只是实现方式不一样而已。 而这里,我们不依托于企业环境,自己搭建一个试试看,两天电脑,一台mac,一台windows。步骤也比较简单: 由于我搞不到集团的部署环境,这里只做hook钩子(不依托于gitlab),到build这一步(部署到测试环境这一步,我们后续写进第三台机器里试试看) 还有一个降级方案,就是手动点击部署,搞一个next应用,page展示各个应用的按钮,点击打包,就到应用的目录下(可配置分支),拉代码,然后build,然后push。为什么选择next呢,就是因为它既能用node环境,也能使用react部署。为什么不用gitlab呢,因为这个项目是公共项目,用gitlab的话,要改配置文件,懒得和别人发生交集。 参考文档:zhuanlan.zhihu.com/p/539815547