相信不少同窗都有本身的博客,若是没有,能够参看《Hexo建站:部署到github》,利用Hexo和github pages服务搭建一个美观便捷的博客,Hexo能够将你编写的md文档解析渲染成html网页,最后经过git推送到github便可造成一个网站。html
以上第一步通常只在第一次搭建的时候须要进行,后续只要执行2~6步便可。可是存在一些状况,假如你须要在不一样的电脑上发布博客呢?假如你重装了系统呢?是否是须要从新来一次?要知道最繁琐的步骤就是第一步,这里面能够分出不少步来作,看过上面那篇博客或者本身正在使用hexo+gh
手动发布博客的同窗都知道多痛苦。node
今天笔者就来介绍下利用travis-ci这个持续集成平台简化发布流程,简化后流程:git
利用travis大大提升了效率!是否是很诱人?github
Travis CI 是开源持续集成构建项目,用来构建托管在GitHub上的代码。它提供了多种编程语言的支持,包括JavaScript,Java,Scala,Ruby,PHP,Haskell和Erlang在内的多种语言。shell
当咱们每次进行git push
等动做时,Travis CI 会自动检测咱们的提交,而后根据配置文件.travis.yml
帮咱们自动生成、部署静态网页。npm
注意:不是
hexo deploy
更新博客repo!而是直接把本地博客托管到github。编程
笔者直接把本地hexo博客源码托管到了xiong-it.github.io的hexo分支,博客网站则在默认的master分支上。不想采起分支管理的话,你也能够把本地hexo博客托管到独立仓库,可是在配置travis同步时会有所不一样。本文采起分支管理方式。vim
那既然须要使用travis自动化更新你的博客,travis天然须要读写你的github上的repo。github提供了token机制来供外部访问你的仓库。缓存
进入github.com/settings/to…,生成一个供travis读写你的github用的token,至于token的权限,笔者直接全选了,可是不建议这样作,风险比较大,token注意保密,待会会用到。
bash
使用github帐号登录travis,若是没有github帐号的同窗,能够参考《如何提交代码到Github》注册一个本身的github帐号。
进入travis-ci.org/profile,打开刚才托管的hexo博客源码仓库同步开关,不必定是博客网站repo。因为笔者直接把本地hexo博客源码托管到了xiong-it.github.io的hexo分支,因此也就是打开网站repo。若是你不是采起的分支管理,而是将hexo博客源码托管道独立repo,打开对应的github repo开关便可。
如图:
点击上图中红色圆圈,进入设置页,设置自动化编译时机,自动化编译过程当中须要用到的变量。
以上设置的含义是:
.travis.yml
是travis平台进行自动化构建的配置文件,travis会根据配置文件生成一个shell自动化脚本。
进入hexo博客源码本地repo
cd hexo
touch .travis.yml
vim .travis.yml复制代码
.travis.yml示例以下:
# 指定语言环境
language: node_js
# 指定须要sudo权限
sudo: required
# 指定node_js版本
node_js:
- 7.9.0
# 指定缓存模块,可选。缓存可加快编译速度。
cache:
directories:
- node_modules
# 指定博客源码分支,因人而异。hexo博客源码托管在独立repo则不用设置此项
branches:
only:
- hexo
before_install:
- npm install -g hexo-cli
# Start: Build Lifecycle
install:
- npm install
- npm install hexo-deployer-git --save
# 执行清缓存,生成网页操做
script:
- hexo clean
- hexo generate
# 设置git提交名,邮箱;替换真实token到_config.yml文件,最后depoy部署
after_script:
- git config user.name "yourName"
- git config user.email "yourEmail"
# 替换同目录下的_config.yml文件中gh_token字符串为travis后台刚才配置的变量,注意此处sed命令用了双引号。单引号无效!
- sed -i "s/gh_token/${GH_TOKEN}/g" ./_config.yml
- hexo deploy
# End: Build LifeCycle复制代码
修改下_config.yml文件的deploy节点:
# 修改前
deploy:
- type: git
repo: git@github.com:xiong-it/xiong-it.github.io.git
branch: master复制代码
# 修改后
deploy:
- type: git
# 下方的gh_token会被.travis.yml中sed命令替换
repo: https://gh_token@github.com/xiong-it/xiong-it.github.io.git
branch: master复制代码
最后将两个yml文件push更新到hexo博客源码branch或者独立repo,就会在travis后台成功看到第一次构建了。
欢迎访问个人我的hexo博客:xiong-it.github.io
之后每次更新博客,只须要编写md文件,放入hexo/source/_post/文件夹下,git add,commit,push
后,push操做也能够直接使用刚才申请的token,而无需在不一样电脑上配置ssh共密钥。
git push https://<your_token>@github.com/xiong-it/xiong-it.github.io.git hexo:hexo复制代码
travis就会读取hexo博客源码分支下的.travis.yml
文件,自动帮咱们生成并部署网站了。