使用 hexo + gitPages
搭建我的博客的人都知道,每当要发表一篇博文,第一步得手动使用 hexo g
命令生成静态网页,而后还得经过 hexo d
命令将静态文件推送到GitHub远程仓库,不说麻烦不麻烦,更重要的是有时候环境换了,没有搭建 hexo 环境,想发篇博客的时候就没有可能了。而如今经过 Travis CI 就能自动构建本身的博客。咱们只需将写好的 Markdown
格式的博文push
到 hexo源文件 分支便可。node
Travis CI 是目前新兴的开源持续集成构建项目,它与 jenkins,GO的很明显的特别在于采用 yaml 格式,简洁清新独树一帜。目前大多数的 github 项目都已经移入到 Travis CI 的构建队列中,听说 Travis CI 天天运行超过 4000 次完整构建。git
Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其余渲染引擎)解析文章,在几秒内,便可利用靓丽的主题生成静态网页。github
个人博客自动部署思路是,将 hexo
源码 push
到博客 项目的另一个分支,
既一个分支放源码,一个分支放静态文件,使用 Travis CI
自动部署 hexo 源码的分支,构建完成后自动推送到 静态文件的分支上,而这一切都在一个仓库上进行操做。
注意:若是使用的是GitPage
的我的站点来搭建博客的 ,则博客静态文件在 master
分支上;若是使用的是 gitPages
的项目站点来搭建博客,则博客的静态文件在 gh-pages
分支上。npm
若是想要 让travis CI
构建完成以后自动 push 到 master 分支,则travis须要有对这个仓库进行操做的权限,此时咱们就须要为Travis CI 配置Access Token(访问令牌)。
在GitHub上生成Access Token 的步骤是,点击头像进入设置(Settings),r而后点击左边菜单栏最下面的Developer settings
选项,进入后点击左边的 Personal access tokens
选项,进入后点击右上角的Generate new token
按钮
点击后就会来到下面的界面,先给 Token 起一个名字,而后为它设置一些权限,其中红框内的权限是必须的,其余能够随意添加。
点击下面的 create token
按钮,就会生成一个已经赋予好权限的 token 值,接下来咱们Travis CI 网站的配置中。
gulp
若是以前从未使用 Travis CI 来构建项目,则咱们先须要使用GitHub帐号来登陆网站,登陆进来后,会进到以下图界面,若是底下 没有把 GitHub 仓库中的项目加载进来,能够手动点击右上角的 Sync account
按钮,待到同步完成后将要自动构建的项目开启。
开启后点击设置图标就能够进行一系列的设置,以下图所示,先开启 General
里的两项选项:hexo
Build only if .travis.yml is present
:只有在.travis.yml
文件中配置的分支改变了才构建Build branch updates
:当分支更新后开始构建而后在 Environment Variables
一栏里将在 GitHub 下获取的的 Access Token
值添加进来
框架
上面提到的 .travis.yml
配置文件须要添加到hexo 源码的根目录下,由于Travis CI 在自动构建时须要获取这些配置信息,以此来完成构建任务;这些配置信息主要包括源码分支,静态文件推送分支,仓库地址等信息。
其中主要内容以下:网站
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 "dmego" --{GitHub帐户名称} - git config user.email "zengkai12138@outlook.com" --{Github帐户邮箱} - git add . - git commit -m "Update docs" - git push --force --quiet "https://${GH_TOKEN}@${GH_REF}" master:master # E: Build LifeCycle branches: only: - hexo --{Hexo源码分支名称} env: global: - GH_REF: github.com/dmego/dmego.github.io.git --{仓库地址}
配置到这一步就已经把全部配置所有完成,下面就是验证的过程ui
将某篇文章中的一个表格增长一行后将修改推送到hexo源码所在的hexo
分支
,而后等Travis CI 构建并自动部署成功后。
点击博文发现表格多了一行。
code
这样作虽然能很好的实现自动部署的功能,可是有个问题也要注意,就是博客源码公开问题,若是对博客源码不介意的能够直接使用公开仓库,若是介意那就没有办法了,除非使用付费的私有仓库,或者把项目放在Coding
上去,由于上有提供免费的私有仓库。就我我的认为,既然是本身的博客,原本就是要给人看的,博客源码也谈不上存在什么隐私。