使用Travis CI自动构建Hexo
Travis CI是什么?
Travis CI 是在线托管的持续集成服务,绑定Github项目,抓取新的代码自动进行测试构建,甚至自动部署到测试环境。 使用这项服务,每次我们提交新的代码,都能及时发现问题并修复。
为什么要使用Travis CI?
明明hexo g -d 就很方便,为什么要使用Travis CI?
最主要的是可以随时在github上修改你的博客,甚至可以在线发表博客,解决少数时候电脑上没有Hexo环境的麻烦
自动构建原理
1.当我们写完文章push到github
2.Travis检测到我们push了文章
3.Travis将我们的代码clone至它的服务器环境,执行打包部署
开始操作
- 在github中创建你的项目(可以是username.github.io,不是也没关系)
- 在github的Developer settings配置让Travis有权限访问仓库的Token,生成token后暂时不要关闭
- 进入Travis CI官网使用github账号登录,添加刚刚新建的仓库
- 进入Travis点击你的仓库-More option -> Settings -> Environment Variables ,NAME填入GH_TOKEN, VALUE填入刚刚生成的token,点击add保存
- 在你的本地仓库的根目录新建文件.travis.yml(和这两个文件同一级别_config.yml & package.json),填入下面的内容
1 | sudo: false |
- 将你的Hexo文件夹的文件 push到github。默认情况下,
public/
文件夹是不上传的,请确保.gitignore
文件包含public/
。没有.gitmodules
文件,文件夹结构应该与此仓库大致相似。
1 | git init |
注意,如果你的项目是username.github.io,请将源文件push到非master分支,如果是其它名字请push到master分支,因为Github Pages服务对于用户和组织默认发布源是
-master
,对于项目站点默认发布源是-gh-pages
1 | # 以项目是`username.github.io`为例 |
push完成就可以在Travis的仓库页面查看执行日志了,等2分钟就会自动部署到master分支了
采坑总结
我push了好多好多次,travis自动部署的文件总是为0kb的空文件,最后发现是因为主题没有上传导致(主题是直接用git clone下来的),删除主题里面的.git
文件,再到主题的.gitignore
文件中去掉_config.xml
参考:
使用Travis-CI部署hexo博客到腾讯cos&github-pages
手把手教你使用Travis CI自动部署你的Hexo博客到Github上