Travis持续发布Hugo博客
以前使用Hexo
的时候了解到了Travis
这个好东东,应该是我自jenkins之后接触过的第二个CI了,挺有意思。
之前的做法,或者说一般网上的做法,都是只弄一个仓库,然后源码和生成物在不同的分支,包括Travis官文上也是这样写的。这就存在两个问题:
- Travis只有发布到开源仓库才免费,而发布到私有仓库每月好像要100多美元;
- 如果发布到开源仓库的不同分支,那我私密性的博客不就源码可见了嘛。
所以我这里采用了两个仓库:
- 源码仓库,私有,只用来存放源码;
- 静态文件仓库,开源,只用来存放Hugo的生成物。
.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
| language: go
go:
# 指定Golang 1.8
- "1.8"
env:
global:
# 定义一个全局变量
- GH_REF: github.com/vee-zhang/vee-zhang.github.io
# 分支白名单限制: 只有master分支的提交才会触发构建
branches:
only:
# 指定master分支参与构建
- master
install:
# 安装hugo
- wget -q -O hugo.deb https://github.com/gohugoio/hugo/releases/download/v0.86.0/hugo_extended_0.86.0_Linux-64bit.deb
- sudo dpkg -i hugo.deb
script:
# 运行hugo命令
- hugo
# git直接推public
- cd public
- git init
- git config user.name "vee-zhang"
- git config user.password "$githubtoken"
- git add -A
- git commit -m "Update Blog By TravisCI With Build $TRAVIS_BUILD_NUMBER"
- git push --force --quiet "https://$githubtoken@${GH_REF}" master:master
|
我通过各种方法来安装Hugo,包括go get
直接安装,clone源码然后go install
编译安装,都报错失败了。最后从网上查到竟然可以使用wget下载成品!!!
但是这样以来确定也很明显,就是Hugo不能自动更新了。留待以后解决吧。
添加Travis构建结果图标
1
| <img src="https://www.travis-ci.com/vee-zhang/VeeBlogSourceCode.svg?token=zr2k46J9vsyyAMcKzMGx&branch=master&status=passed" alt="build:passed">
|
鸣谢:
qq_43103581