利用Travis CI自动部署Hexo至VPS

Travis CI

之前博客都是本地用Hexo生成好了,手动上传至VPS,可能由于写的少所以虽觉繁琐但还不是很麻烦。最近又更了一票,想起之前经常看到的Travis CI自动部署至Github Pages,想来我也应该弄下持续集成。

打开Travis CI文档看了看,大概明白了,Travis CI把Repo克隆下来,然后按照配置文件,一步一步搭建环境,执行脚本达到部署的目的。到了Hexo这里,自然很简单,配好node环境,npm install后,执行hexo g即可得到我们要部署的public内容。

就是最后一步,把生成的静态文件部署至目标位置上,这个稍微麻烦点。Google出来的参考文章大多都是自动部署至Github Pages,看了下他们的脚本,通过Gitpublic提交至对应的Git仓库即可。可以用Heox自带的deploy也可以用写脚本提交Git

里面关键点就是需要通过本地的Travis加密Github的仓库Token,然后自动部署时Travis会解密Token来获取部署所需的访问凭证。这样确保我们可以把凭证上传至公开repo

我这里需要的把内容部署至自有的VPS,同样是需要加密访问凭证,细节有点不一样。参考了下这篇。

可以通过Travis在本地加密sshprivate key,同事Travis也把解密的脚本内容自动填充至.travis.yml里了。

travis encrypt-file travis_key --add

会生成一个travis_key.enc,这个就是我们的ssh key加密后的文件了,可以上传至公开repo

自动部署时,Travis就能通过解密得到的key访问我们的VPS了,上面这个博主有了key之后选择用Git的方式把文件上传至VPS,个人觉得rsync更方便。

rsync -vr public/* -e ssh travis@2mih.com:/home/travis/public/

有2个地方注意下:

有需要的可以去Blog参考下具体配置。

YidaZh
2017-01-22