使用Travis-ci进行个人博客的持续集成

在使用Hexo写完一篇博客后,都需要手动在本地编译,并生成静态文件,最后在上传至github服务器上才能发布,繁琐步骤姑且不说,如果换了电脑,那么想要写blog就需要重新配置环境,迁移markdown文件之类的,特别麻烦。因此,我们可以通过持续集成的方式来达到自动编译发布的效果!

Travis-CI

Travis-CI是针对github上面开源项目持续集成的一项服务。

第一步

登录github,进入到个人中心,选择setting=>develop setting =>person access tokens;
在描述框里面随便输入一个描述就可以了,比如blog或者其他的,勾选下面的所有复选框,这个时候就会出现一个token,然后把token保存下来。

第二步

使用github账号登录Travis-Ci,这个时候你会看到自己所有github上的项目,选择需要做自动集成的项目lzq920.github.io

勾选 [Build only if .travis.yml is present],
并且 在Environment Variables中添加github上的access token。

第三步

添加编写.travis.yml

在项目源码根目录(我的是lzq920.github.io source分支), 添加.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
30
31
32
language: node_js
node_js: stable

# S: Build Lifecycle
install:
- npm install

before_install:
- git submodule update --init --remote --recursive

#before_script:
# - npm install -g gulp

script:
- hexo g

after_script:
- cd ./public
- git init
- git config user.name "你的用户名"
- git config user.email "你的邮箱"
- git add .
- git commit -m "Update docs"
- git push --force --quiet "https://${GitHub_TOKEN}@${GH_REF}" master:master
# E: Build LifeCycle

branches:
only:
- Source
env:
global:
- GH_REF: github.com/username/username.github.io.git

里面最重要的可能就是执行脚本和变量,脚本。 其中hexo g是编译hexo 项目命令,after_script是编译命令完成后将结果推送至github项目下。${GitHub_TOKEN} 和 ${GH_REF}是两个占位符,第一个就是我们在Travis项目下添加的Token,会在travis执行的时候自动替换,第二个就是下面env的一个变量,这里我们也可以不要这个变量直接放地址也可以。还有一点的是branch指定,我们这里只需要source 分支。

第五步

将hexo的源码上传到blog项目下的source分支上,然后当你的source分支上进行了任何修改,都会在Travis上面看到一个执行流程,大功告成!!!

从此以后,如果你需要发表blog可以通过github直接创建文章,也可以clone你的分支,安装依赖以后发表文章再推送上去.