Travis CI 是目前新兴的开源持续集成构建项目,它与jenkins,GO的很明显的特别在于采用yaml格式,同时他是在在线的服务,不像jenkins需要你本地搭建服务器。目前大多数的github项目都已经移入到Travis CI的构建队列中,据说Travis CI每天运行超过4000次完整构建。对于做开源项目或者github的使用者,如果你的项目还没有加入Travis CI构建队列,那么我真的想对你说out了

Travis CI目前有两个站点:

分别是 https://travis-ci.orghttps://travis-ci.com
https://travis-ci.org 是旧平台,已经逐渐往新平台 https://travis-ci.com 上迁移了。对于私有仓库的免费自动构建,Travis CI在新平台上给予了支持

有人可能会有疑问: 在本地写完博客,直接一个命令hexo d,不就搞定了么, 为啥要费力搞CI?

假如你想新增一篇文章或者修改文章内容,但你手头又没有完整的hexo+nodejs+git的开发环境设备,重新下载hexo+nodejs+git再配置会花费不少时间,特别不划算
如果按照这篇完整折腾完,你可以直接用浏览器访问github个人项目仓库,直接新增或编辑文章的原md文件。 稍等片刻,你的博客就自动更新了

首先我的博客是使用Hexo来搭建的,托管到Github提供的Gitpages服务上的

每次写完博客git push到github,然后Travis自动构建,构建完成后自动推送到Gitpages服务上

在github上生成Access Token

打开 https://github.com/settings/tokens 页面,点击Personal access tokens,点击右上角的Generate new token按钮生成一个Token,点击后他会让你输入密码,然后来到如下界面,给他去一个名字,下面是勾选一些权限

生成完后,你需要拷贝下来,只有这时候他才显示,下次进来为了安全他就不会显示了,如果忘了只能重新生成一个了,拷贝完以后我们需要到Travis CI网站配置下

使用Github账号登录 Travis CI 官网

点击 头像-Settings-Repositories 选择你的博客项目仓库

开启后,点击项目胖的Settings,找到Environment Variables, 填写刚获取的token

Name处填GH_TOKEN,VALUE处填你的token密钥。至于为什么我们要在这里配置,我想大家肯定应该明白了,写在程序里不安全,配置到这里相当于一个环境变量,我们在构建的时候就可以引用他

到这里我已经配置了要构建的仓库和要访问的Token,但是问题来了,他知道怎么构建,怎么生成静态文件吗,怎么push的gitpages,又push到哪个仓库吗,所以这里我们还需要在博客项目的仓库里创建一个.travis.yml配置文件,放到博客项目的根目录,代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
language: node_js
node_js: stable

# S: Build Lifecycle
install:
- npm install

#before_script:
# - npm install -g gulp

script:
- hexo g

after_script:
- cd ./public
- git init
- git config user.name "abbw"
- git config user.email "abbw@foxmail.com"
- git add .
- git commit -m "Update"
- git push --force --quiet "https://${GH_TOKEN}@${GH_REF}" master:master
# E: Build LifeCycle

branches:
only:
- master
env:
global:
- GH_REF: github.com/abbw/blog.git

请自行修改代码中的值,GH_REF的值更改为你的博客项目仓库地址

现在,你只要在博客项目仓库里编辑或新建文章,如果不出意外,我们可以就可以在Travis CI网站看到他已经在构建了