简介
完善一下早期文章。虽然网上已有很多关于博客自动部署的教程,但是真正实践起来并不是一番丰顺。所以
将踩过的坑记录下来也是必要的。
自动部署方案选择
Webhook
Webhook,也就是人们常说的钩子,是一个很有用的工具。你可以通过定制 Webhook 来监测你在 Github
上的各种事件,包括提交合并分支等事件。并且github和gitlab对webhook的支持比较好。
主要思路就是当有新的 push
操作后,触发webhook的回调,进行仓库拉取更新和编译,并且将编译后的
文件推送到 git
仓库或者特定服务器上,就完成了自动部署。
但是此方案需要有一个服务器,所以暂时不考虑。
Travis CI
Travis CI 是目前新兴的开源持续集成构建项目。目前我的大多数的github项目都已经移入到Travis CI的构建队列中。
travis配置
- 开启travis中要构建的项目,并指定触发条件。
配置环境变量Environment Variables,主要目的是将HEXO_ALGOLIA_INDEXING_KEY(algolia的key)和TRAVIS_GITHUB(Github的Access Token)
以私有方式配置到构建环境中。配置
.travis.yml
配置文件, 安装node,配置主题,hexo编译,自动配置algolia搜索字段的更新,将构建结果push
到github
对应仓库。
1 | language: node_js |
测试结果
推送一篇新主题到 website
仓库,观察 travis-ci构建过程
当出现 Done. Your build exited with 0.
后表示构建并且更新blog成功,稍等一分钟可以刷新你的blog查看最新结果。