背景
如果你曾了解过Hexo, 相信你已经可以通过hexo deploy
部署自己的博客到github pages
了。
但是,这样我们仅仅可以通过当前电脑来发布博客,如果电脑不在身边,或者不小心把文件删除了,就会很麻烦。
下文教你如何实现把自己写的博客和生成的静态文件同时托管在github
:
将博客源码托管到github
细心的人可以发现,通过hexo init
生成的文件中,已经包含了.gitignore
文件。说明hexo
开发者也是希望大家把博客源码托管到git
上的。
我们可以通过分支来实现,将源码放在master
(看个人喜好)分支、将hexo deploy
的分支指定为gh-pages
分支。具体实现如下:
如果没有
github repository
首先需要在github
新建一个仓库,点击new repository
。hexo init
生成一个新的博客项目根据hexo 文档修改配置,使博客可以通过
git server
预览。git init
git remote add origin git@github.com:account/blog_repo.git
请将git
地址改为1
中说到的你自己的仓库地址git add .
git commit -m "init"
git push origin master -f
将代码推到github
master
分支
这时候,我们就把项目托管到了github
,当你换了一台电脑,或者不小心把文件删除了的时候,只要重新git clone
就可以了。
但是这仅仅只是将代码托管到了github
。当我们新完成一篇博客,并把代码push
到github
上的时候,并不会自动deploy
。
通过travis自动部署
Travis CI是在软件开发领域中的一个在线的,分布式的持续集成服务,用来构建及测试在GitHub托管的代码。
使用
github
授权登录 Travis CI在
Travis CI
中打开博客项目仓库的开关。并在配置中打开Build only if .travis.yml is present
选项在
github
中创建access token
,详细教程:Creating a personal access token for the command line在
travis
博客仓库的配置中将刚刚生成的token
添加到Environment Variables
中,name为REPO_TOKEN
- 在项目根目录新增
.travis.yml
文件。配置如下
1 | language: node_js |
- 修改hexo的配置文件
_config.yml
的deploy
:
1 | # 注意,这里注释掉了repo, 因为我们需要在ci中通过环境变量 HEXO_DEPLOYER_REPO 配置 |
git add .
git commit -m "add travis ci"
git push origin master
这时候你会发现travis ci
显示该项目处于running
状态。 等最后变为 passed
状态后。github pages
就已经自动部署成功了。