基于Travis CI和Github的前端云构建

栏目: 服务器 · 发布时间: 8年前

内容简介:基于Travis CI和Github的前端云构建

最近在思考团队里前端代码部署的问题,之前采用的方案是在本地构建,推到Github上一个专门放build后前端代码的仓库,然后Github的Webhook去触发后端的部署逻辑。代码就从这个仓库里拉取。

这种方案看起来没什么大问题,但总觉得比较awkward。首先这套方案不够自动化,需要大量的人工操作。然后Github的Webhook其实并不是特别好用,如果后期要和我们内部的私有云平台对接起来,还要经过一些桥接才可以。

本来呢,因为最近学了 docker 的缘故,我想写一个简单的Node服务,用来自动构建代码,然后通知服务端部署。每个应用就是一个单独的容器,这样环境就可以隔离。这个方案想来也不错。直到我仔细研究了一下Travis CI,才发现这个CI真是不简单。云端构建的任务用Travis CI就可以完美的实现。

关于CI

CI是持续集成的意思,持续集成里主要包括构建和测试代码。之前对Travis CI的印象是可以跑测试,仔细看了之后才发现Travis CI其实是一个云服务,提供了一个虚拟的 Linux 环境。你可以运行自定义的脚本。这个Linux环境的自由度还是非常大的。对于前端构建来说,Travis CI的网络环境可以快速安装npm包,这是一个非常大的优势。

.travis.yml 文件

Travis CI的配置文件其实就是让你写几个生命周期hook,内容一般是 shell 命令。比如 install 这个hook里主要写一些安装依赖的逻辑, script 这个hook里主要是写测试和构建的逻辑, deploy 这个hook里是写部署的逻辑。另外这几个hook都有各自的 before 和 after 版本。总而言之自由度是很大的。

一个示例 .travis.yml 文件。虽然我们不能直接 .travis.yml 中写逻辑,但我们可以运行任意的脚本,所以可以看出 .travis.yml 的能力基本等价于shell脚本。

language: node_js
node_js:
  - "7"
install:
  - npm install
script:
  - npm run build
after_script:
  - tar -cvf bundle.tar ./dist
  - node deploy.js

云端构建

在看过了上节的 .travis.yml 文件之后,云端构建的大致逻辑应该已经非常清楚了。我们在Travis CI的虚拟机中安装node依赖,build代码,压缩代码,然后运行一个js脚本。这个脚本的内容就是将代码上传到CDN。

deploy.js 中还可以向后端的平台发送部署的请求,以达到自动部署的目的。如果后端是分布式的架构,向管理的节点发送请求即可。

一些展望

Travis CI的能力取决于这个虚拟机里提供了怎样的环境。Travis CI支持docker,因此我们可以用Travis CI进行docker镜像的构建和上传。Travis CI支持Nodejs,因此我们可以在虚拟机中安装hexo,进行博客的云端构建和自动部署。云端的构建,由于保证环境的隔离,因此稳定性会比本地高。以上都是Travis CI可能的用途。Travis CI作为一个云服务,在运维方面,还有无限的可能性等我们去探索


以上所述就是小编给大家介绍的《基于Travis CI和Github的前端云构建》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。

移动的帝国

移动的帝国

曾航、刘羽、陶旭骏 / 浙江大学出版社 / 2014-1-1 / 48.00

日本是全世界移动互联网最发达的国家之一,堪称移动的帝国。在手机游戏、手机支付、移动医疗、移动电子商务、手机电视等方面,日本都充当了全球移动互联网的试验田。 曾经傲视全球的日本运营商将怎样面对转型的挑战?iPhone来势汹汹,如何打破封闭的日本移动互联网体系?日本在智能手机时代的手机游戏、O2O、移动医疗、移动广告等方面,涌现出了哪些值得借鉴的商业模式? 本书作者团队先后数次前往日本调研......一起来看看 《移动的帝国》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具