OverRainbow

Hugo借助Travis CI实现GitHub Pages自动部署实践

☕️ 1 min read

内容概述

  • hugo的安装
  • 子模块同步
  • 语法高亮
  • Travis CI配置

环境介绍

  • win10x64 一周年纪念版及更新版本
  • chocolatey包管理器
  • GitBash
  • Python 2.7+或3.5+

Hugo的安装

hugo的安装很简单,管理员权限下输入该命令:

choco install -y hugo

基本的hugo命令可以参考官网的快速上手,详解hugo的话又可以单独开篇文章了,本文的重点是自动化部署,赶紧进入重点。

子模块同步

为什么这里要提到子模块呢?主要原因是hugo自己不带主题,主题是单独放入在themes路径下的。 通常比较合适的做法不是去直接clone别人的主题,而是先fork,然后clone自己的这个目录。 下一条添加子模块的命令:

git submodule add < github url> themes/casper

语法高亮

hugo对服务端语法高亮支持的不错,借助于python插件Pygments。 只要一条命令:

pip install Pygments

然后在hugo的主配置文件config.toml里面加入相关配置即可,贴上我的供参考:

# color-codes for highlighting derived from this style
pygmentsStyle = "xcode"
# true: use pygments-css or false: color-codes directly
pygmentsUseClasses = false
# add syntax highlighting with GitHub flavoured code fences 
PygmentsCodeFences = true

Travis CI的配置

看到网上许多的配置搞的来比较复杂,有的还抄来抄去抄错了。

我做了个直观易懂的配置,基本都是常见命令。云端构建一次平均20多秒。 直接上配置文件travis.yml

  • 注意要先生成GH_TOKEN(官方教程链接)。也就是在下图所示页面生成一个token:
  • 然后把这个token添加到Travis的环境变量里去。如下图所示
  • 最后简单介绍构建脚本的编写(构建的生命周期)。由于直接用go get < github url >的方式下载到的不是稳定版,为了和本地环境一致,需要用下载编译后可执行文件的方式,并可以指定版本号。因此,并不需要CI安装了go语言。
language: go

go:
  - 1.7.3

branches:
  only:
    - source

env:
 global:
   - GH_REF: github.com/mzvast/mzvast.github.io.git

sudo: required

git:
  submodules: false

# Use sed to replace the SSH URL with the public URL, then initialize submodules
before_install:
  - sed -i 's/git@github.com:/https:\/\/github.com\//' .gitmodules
  - git submodule update --init --recursive

install:
  - export HUGO_VERSION=0.30.2
  - sudo pip install Pygments
  - wget https://github.com/spf13/hugo/releases/download/v$HUGO_VERSION/hugo_${HUGO_VERSION}_Linux-64bit.tar.gz
  - tar xzf hugo_${HUGO_VERSION}_Linux-64bit.tar.gz
  - chmod a+x hugo

script:
  - ./hugo

after_script:
  - cd ./public
  - git init
  - git config user.name "mzvast"
  - git config user.email "mzvast@gmail.com"
  - git add .
  - git commit -m "Update docs"
  - git push --force --quiet "https://${GH_TOKEN}@${GH_REF}" master:master

修订说明


时间说明
2017–11–15增加插图,更新部分说明性内容。
2016–11–19修改Travis配置文件中hugo的下载方式,确保版本为0.17,同时加快构建速度到20秒。
2017–09–14更新Travis配置文件中hugo版本。