持续集成发布 Hexo

每次写完新文章后,都需要手动推送到Gayhub的分支上,这样的重复性操作很容易让人厌烦,而且博客源码和博客本身是分离的,只有博客才有版本控制,所以如果身边没有博客源码,那么就不能发布博客了。基于以上的因素,决定采用Travis CI对博客使用持续集成的方式发布文章。
在真正开始之前,需要在博客仓库上新建一个 hexo 分支,存储博客源码,master 分支则继续存储生成的静态博客。
创建 Github Token
新建一个 token,选择 repo 权限,这个会在下面设置 travis 时用到,注意,token 只出现一次,需要妥善保存

设置 Travis CI
使用 github 帐号登录Travis CI,开启博客仓库并设置启动 CI 的触发条件


- Build only if .travis.yml is present:是只有在.travis.yml 文件中配置的分支改变了才构建
- Build pushes:当推送完这个分支后开始构建
- Environment Variables:新建一个变量,value 填写上面申请的token,name 作为变量名,在.travis.yml 中用到
编写.travis.yml 文件
在 hexo 分支根目录下新建一个.travis.yml 文件,具体内容可参考下文:
1 | language: node_js # 设置语言 |
这个文件其实就是包含命令的脚本,按照 before_install—>install—>script—>after_script 的顺序执行相应命令,在 after_script 阶段调用publish-to-gh-pages脚本执行推送到 master 分支的任务。
1 | !/bin/bash |
需要注意的是,如果仅仅只是执行git push命令,会丢失以前所有的提交信息,所以为了不丢失这些信息,需要执行master start到master end的内容。
结束
写完文章就可以在 hexo 分支下执行 git push 命令,打开travis,如果发现和下图一样的 passed,就说明持续集成发布博客已经大功告成了。
