使用Travis自动部署Hexo

Travis配置

GItHub创建Access Token

登录GItHub–>GitHub用户头像–>Setting–>Developer settings–>Personal access tokens–>Generate new token

GitHub

GitHub

勾选repouser:email点击创建。生成的token只显示一次,所以需要先保存起来后面会用到。

Travis CI配置

配置Travis公共仓库服务:travis-ci.org,配置Travis私有化仓库服务:travis-ci.com

这里我们使用公共仓库服务travis-ci.org

打开Travis CI网站,使用GItHub账号登录,点击Sync account会显示GitHub项目列表。选择博客项目开启Travis支持。

点击项目找到More options中的Setting开启Build only if .travis.yml is presentBuild pushed branches

Travis

Environment Variables创建环境变量TravisCIToken值为在GItHub创建的Access Token的token值。不要勾选Display value in build log,否则会在日志文件中暴露 token 信息。

Travis

创建.travis.yml文件

注意yml文件中不能使用tab进行缩进,使用空格缩进,:后有一个空格。

Hexo根目录blog文件夹内创建.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
anguage: node_js
node_js: stable
cache:
apt: true
directories:
- node_modules
before_install:
- export TZ='Asia/Shanghai'
- npm install hexo-cli -g
- chmod +x ./publish-to-gh-pages.sh
install:
- npm install
script:
- hexo clean
- hexo g
after_script:
- ./publish-to-gh-pages.sh
branches:
only:
- hexo
env:
global:
- GH_REF: github.com//.github.io.git

Hexo根目录blog文件夹内创建publish-to-gh-pages.sh:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/bin/bash
set -ev
# get clone master
git clone https://${GH_REF} .deploy_git
cd .deploy_git
git checkout master
cd ../
mv .deploy_git/.git/ ./public/
cd ./public
git config user.name ""
git config user.email ""
# add commit timestamp
git add .
git commit -m "Travis CI Auto Builder at `date +"%Y-%m-%d %H:%M"`"
git push --force --quiet "https://${TravisCIToken}@${GH_REF}" master:master

自动部署

  • 打开Git Bash

以下操作全部在Hexo根目录blog文件夹内执行

  • 创建远程分支
1
$ git checkout -b hexo
  • 初始化本地仓库:

删除原来部署时产生的.git文件夹(隐藏文件夹)

1
$ git init
  • 关联远程仓库
1
$ git remote add origin [email protected]:/.github.io.git
  • 推送仓库
1
2
3
$ git add . # 添加文件
$ git commit -m "first import" # 编写注释
$ git push -u origin hexo # 推送至远程仓库hexo分支

推送成功后可以在travis-ci.org后台查看自动部署情况。

相关参考

0%