根据我们平时的工作流程,我们可以简单的了解下什么是集成、交付和部署
「 集成 」 :将我们的开发分支合并到主分支,尽早解决合并后可能出现的问题,比如冲突合并,单元回归测试
「 交付 」 :在集成没问题的基础上,在类线上环境进行代码功能的测试,看看有没有bug
「 部署 」 :将变更同步部署到线上环境,进行验证
那么前者加上 持续 后又有什么不一样呢?主要区别在于后者是频繁(一天多次)的进行。
什么意思呢,举个例子,我们接到一个电商系统迭代的需求,涉及到了首页、商详、下单等子系统,为了保证产品的交付质量和速度,在原有各子系统交互的协议不变的前提下,我们一般会将每个子系统的迭代在各自的功能分支内完成开发以及测试和发布环节,自身重构后的问题也能各自功能分支的环节中尽早发现及解决。这样的话每完成一个子系统的迭代环节,就向下个环节交付,发现问题可以马上调整,问题也就不会放大到其他子系统和以及后面的环节。
直白一点就是,我们不会等到所有代码都写好了,测试好了,再一起发布到线上,这样最后可能问题会多到爆,并且中间进度很受影响,而是写一点就测试一点,然后发一点。
俗话说 「 工欲善其事必先利其器 」 ,下面我们就使用当下比较流行的一款CI工具Jenkins结合Github和Nginx,看看如何完成前端项目的自动构建和部署。
首先,大家可以在 Jenkins官网 下载自己对应系统的最新版本,我这边下载的是Windows版本的,安装后默认会在浏览器通过http://localhost:8080打开。
经过几分钟的等待,界面跳转到初次解锁界面,可以根据界面中的路径提示填写管理员密码
随后来到插件安装界面,因为默认的插件源是国外的,一般下载是非常慢,所以这边建议点击右上角的关闭直接跳过
接下来我们用管理员账号进入到Jenkins,这边的镜像用的是 tuna Jenkins镜像 ,可以在该网站上下载插件通过导入的方式安装,也可以直接替换Jenkins插件设置面板中的插件源为
「 https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json 」
然后在可选插件面板搜索插件进行安装。
localization-zh-cn
publish-over-ssh
git-parameter
安装完毕记得重启一下Jenkins,重新登入后,就可以开始其他的配置了。
这个这里就不详说了,网上的教程很多。我们在服务端开启之后,然后将服务的端口和html路径记录下来备用就好了
登陆自己的个人github,根据下图所示创建一个具有读写权限的令牌,记得创建后保存!
先在远程服务端配置一个SSH服务,linux和windows系统的配置方法不一样,可以参考这个 如何启动SSH服务 ,没有服务器的同学,这边安利阿里云他们家的,新用户还有限期免费的用,接下来就可以在Jenkins配置以下信息
然后我们需要新建一个项目,进入到项目配置
添加描述后,配置源码来源,链接是我们仓库代码的主页url
连接GitHub需要先添加凭据,填写保存完毕,勾选该凭据即可使用
接下来就把我们上面配置的SSH服务添加到Jenkins项目配置中
最后添加构建需要的shell就好了,点击保存,即可使用
到了激动人心的时刻了,点击构建,然后可以在控制台中看到日志
访问我们服务器nginx服务的地址,大功告成!
如有错误,敬请指正!
本文使用 mdnice 排版