使用 TRAVIS 自动部署 HEXO 到 GITHUB 与 自己的服务器
前期准备
请尽可能用比较新的 RubyGems 版本,建议 2.6.x 以上。
1 | $ gem update --system # 这里请翻墙一下 |
使用国内镜像
1 | $ gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/ |
参考: https://gems.ruby-china.org/
安装travis
sudo gem install travis
配置github
我的github之前已经配置好GitHub Pages,现在需要变成下面这样,之前只有master一个分支。
- master 存放 Hexo 生成好的静态文件,所有 commit 信息格式均为
Site updated: %Y-%m-%d %H:%M:%S
; - source 存放 scaffolds(脚手架)、source(文章 Markdown 源码)、_config.yml(Hexo 配置)等文件,并设置为 repo 的默认分支。
配置 Travis CI
- 使用github帐号登录Travis,右上方按钮点击同步项目,下方打开需要集成的项目,最后点击齿轮进入项目配置页面
- 打开Build only if .travis.yml is present
参考这篇文章 https://segmentfault.com/a/1190000009054888
通过命令行登录 Travis 并加密文件:
在hexo blog项目根目录下创建一个文件 .travis.yml
1 | cd 博客根目录 |
生成一个 ssh 密钥对(不要嫌麻烦直接把你机器上的秘钥拿去用了,太危险):
1 | cd 博客根目录 |
然后把生成的公钥文件(e.g. travis.key.pub)分别添加到 GitHub Deploy Keys、VPS 上的 ~/.ssh/authorized_keys 中,这样 Travis CI 的机器就可以直接访问这些服务器了。
1 | cd 博客根目录 |
以上步骤完成后你会得到一个 travis.key.enc
编辑 .travis.yml
1 | cd 博客根目录 |
这是我的配置文件
1 | language: node_js |
vi .travis/deploy.sh
1 |
|
删除一些文件
1 | cd 博客根目录/.travis/ |
由于我之前有github pages内容了,我需要把之前的内容与现有的hexo博客内容合并下
1 | git init |
编辑下.gitignore 忽略一些文件
1 |
|
最终测试
每次 push 新 commit 到 source 分支后,Travis CI 就会自动帮你构建最新的静态博客,并部署至 Github Pages 和你自己的 VPS 上。
1 | git checkout --orphan source |
关于 –orphan 请参考 如何建立一个没有 Parent 的独立 Git branch
我的博客项目配置文件
https://github.com/leadscloud/leadscloud.github.io/tree/source
参考链接
使用 Travis CI 自动部署 Hexo 博客
使用 Travis 自动部署 Hexo 到 Github 与 自己的服务器
优化Hexo博客 - 压缩 HTML、CSS、JS、IMG 等