Reference 很详细地说明了安装、配置 Github Pages,Hexo,Travis 的方法。这里主要分享一下我的方法。
https://github.com/irgb/irgb.github.io 中包含3个分支:

  • master: 包含Hexo生成的静态文件。Github Pages 就是以这个分支创建网站。
  • source: 源码分支. push 这个分支会触发 Travis 进行构建.
  • hexo-skeleton: hexo 项目文件夹,因为其中包含了一些个性化的修改,所以也保存起来.push 这个分支也会触发 Travis 进行构建.

重要的是 ‘.travis.yml’ 文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
language: node_js
node_js: stable
branches:
only:
- source
- hexo-skeleton
before_install:
- git fetch origin source:source # 先 fetch source 分支
- git checkout source
- tar zcvf ./source.tar.gz ./* # 创建 source 文件夹
- mkdir source
- tar zxvf source.tar.gz -C ./source
- rm source.tar.gz
- git fetch origin hexo-skeleton:hexo-skeleton
- git checkout hexo-skeleton # 获取 hexo-skeleton 分支, 刚才生成的 source 文件夹仍然存在.

install:
- npm install # 根据 hexo-skeleton 分支下的 package.json 安装需要的依赖

script:
- hexo cl # 调用 hexo 对 source 文件夹进行编译, 生成网站静态文件.
- hexo g

after_script:
- cd public # Public 文件夹包含了生成的静态文件.
- git init # 接下来的操作就是将 Public 下的文件提交到 master 分支上.
- git config user.name "linjapyc"
- git config user.email "linjapyc@gmail.com"
- git remote add origin https://${GH_TOKEN}@github.com/irgb/irgb.github.io.git
- git add .
- git commit -am "`date +'%Y-%m-%d %H:%M:%S %z'`"
- git push -f origin master:master

Reference