自从使用Github Pages功能利用hexo创建了个人主页之后,就想利用持续集成来自动生成网页,于是著名的免费的持续集成网站Travis就进入了我的视野。
1. 持续集成的流程
使用hexo创建个人网站,在本地编辑文章完成后,提交推送到远程Github的master分支。由Travis检测到push后,自动从Github上拉取资源,执行hexo deploy命令,提交到Github的gh-pages分支,完成hexo个人网站的更新。
大致的流程如下图所示:
1 2 3 4
| graph TD A[本地修改文件]-->|push|B[Github的master分支] B-->C[Travis监测到master分支的push] C-->|编译之后push|D[Github的gh-pages分支]
|
2. Travis配置
2.1. 登录Travis
直接在Travis官网中使用Github的帐号进行登录。
2.2. 项目开启TravisCI
在Github的项目列表中选择开启hexo的项目。

在项目的设置中开启Build only if .travis.yml is present这一项,当travis.yml配置文件存在的时候才进行自动的持续集成。
2.3. 在Github中生成Access Token
在Github的Settings -> Developer settings -> Personal access tokens中新增一个token,在生成这个token时注意要保存这个token(只显示一次)。
2.4. 安装Travis
注意:需要安装Ruby环境
1 2 3 4 5 6 7 8 9 10 11
| gem install travis
touch .travis.yml
travis login
travis encrypt 'REPO_TOKEN=<TOKEN>' --add
|
之后会在.trvis.yml文件中新增如下内容,把这些内容添加到后面的Travis配置文件中
1 2 3
| env: global: secure: bUuBpthJl9M9ybmpI0vkwHURwmh...
|
2.5. 新增Travis的配置文件
在hexo项目的根目录下新增.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 33 34 35
| language: node_js node_js: - "6" cache: directories: - node_modules branches: only: - master env: global: secure: bUuBpthJl9M9ybmpI0vkwHURwmh... before_install: - export TZ='Asia/Shanghai' - npm install -g hexo-cli install: - npm install - npm install hexo-generator-searchdb --save - npm install hexo-deployer-git --save before_script: - git config --global user.name "userName" - git config --global user.email "userEmail" - sed -i'' "[email protected]:userName/notes.git~https://${REPO_TOKEN}:[email protected]/userName/notes.git~" _config.yml
script: - hexo clean - hexo generate
after_success: - hexo deploy
|
3. 提交新博文
在本地编辑新的博文,提交md文件至Github的远程仓库,然后可以在Travis官网查看项目自动化执行的过程和结果。