本文介绍了使用 Travis CI 来部署 Hugo 博客的一个方法。
设置代码仓库
- 采用同一个 repo,创建两个分支:
- master 作为内容仓库
- gh-pages 作为发布页面
- 创建 .gitignore,内容为:
1
2
3
| public/*
themes/*
resources/*
|
创建新的 Token
- 在 GitHub 上申请一个新的 personal access token:
- Token description 也就是 Token 的名字,可以随便填
- 勾选上 repo 下的所有项目,别的项目都不要选
- 点 Generate token 生成 Token
- 记下 Token 的值,因为离开这个页面之后就没有机会再次查看了
设置 Travis CI
- 登录Travis CI,选择对应的 repo
- 点 setting,填写 Environment Variables:
- Name 填写:GITHUB_TOKEN
- Value 填写:刚刚在 GitHub 申请到的 Token 的值
- 点 Add 完成添加
编写 .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
33
34
35
36
37
38
| language: go
# 分支白名单限制:只有 master 分支的提交才会触发构建
branches:
only:
- master
install:
# 安装最新的 hugo
- go get github.com/gohugoio/hugo
# 安装主题
- git clone <THEME_REPO>
script:
# 运行 hugo 命令
- hugo
after_script:
# 部署
- cd ./public
- git init
- git config user.name "<NAME>"
- git config user.email "<MAIL>"
- git add .
- git commit -m "Update Blog By TravisCI With Build $TRAVIS_BUILD_NUMBER"
# Github Pages
- git push --force "https://$GITHUB_TOKEN@${GH_REF}" master:gh-pages
# - git push --quiet "https://$GITHUB_TOKEN@${GH_REF}" master:gh-pages --tags
env:
global:
# Github Pages
- GH_REF: github.com/<USER_NAME>/<REPO_NAME>
deploy:
provider: pages # 重要,指定这是一份 github pages 的部署配置
skip-cleanup: true # 重要,不能省略
local-dir: public # 静态站点文件所在目录
target-branch: gh-pages # 要将静态站点文件发布到哪个分支
github-token: $GITHUB_TOKEN # 重要,$GITHUB_TOKEN 是变量,需要在 GitHub 上申请、再到配置到 Travis
# fqdn: # 如果是自定义域名,此处要填
keep-history: true # 是否保持 target-branch 分支的提交记录
on:
branch: master # 博客源码的分支
|
Author
winsphinx
LastMod
2019-07-22
(6de08025)
[原创] A Guide of Hugo Syntax in Emacs
License
