人想偷懒的方法就是采用自动化,对于 Hugo 还有 Octopress、Jekyll 等静态网页生成工具来说,用来做博客的一般步骤就是:
- 本地写新日志
- 本地运行静态网页生成工具来生成静态网站
- 将静态网站提交到网站托管服务器或 GitHub 上
然而每写一篇日志都要重复这些步骤全是让人很心烦,正好在 Hugo 的官方教程中翻到了「Automated deployments with Wercker」,随即眼睛一亮,开始了我的折腾之旅。
什么是 Wercker
这个 Wercker 是什么呢?其实我也不清楚,研究半天也只看出些许名堂,其简单来说就是定义一系列流程在你每次提交代码到 GitHub 时运行,其分为构建(Build)与部署(Deploy)两个部分,每个部分都有很多别人贡献的子动作(Step)可以直接拿来使用。其实若不是 Hugo 官方给出的教程不适合我,我基本都不用了解到这一步。
准备工作
首先你得现在你本地搭好环境,确定已经完成以下内容:
- 安好了 Hugo,并已经新建好了站点。
- 设置好了版本管理,这里我们用的是 git,并将代码上传到 GitHub。
- 准备好网站的容器,这里我们用的是免费的 GitHub Pages 服务,并准备好一个 Access Token。
连环境都没有的就别在这里扯淡了,赶快先去老老实实地搭环境。
配置 Wercker
这里我就根据我自己的配置经历来介绍采用 GitHub Pages 的方案。
注册什么的废话不多说,注册完之后,根据提示绑定 GitHub 账号,然后新建应用,使用你之前准备好的 GitHub 项目,然后一通 blablabla,建立完成。
正题终于开始了,这个时候回到本机项目目录,并建立一个名叫 wercker.yml
的文件,并写入以下内容。
box: debian
build:
steps:
- arjen/hugo-build:
version: "0.15"
deploy:
steps:
- install-packages:
packages: git ssh-client
- leipert/git-push:
gh_oauth: $GH_TOKEN
gh_pages: true
basedir: public
可能有人看了官方的教程发现和我这个有略微差别,因为官方提供的那个代码中用的 lukevivier/gh-pages@0.2.1
在部署上有些问题,对于 username.github.io
的项目来说,应当采用 master
分支来存放生成的静态页面,而那个 step 则仍会保存到 gh-pages
分支;我后来改用的 leipert/git-push
则是别人在 lukevivier
的老版本上演绎的一个全新的工具其具体的功能不在这里详述。
修改完成后,先不要着急提交,回到 wercker 我们的应用来设置我们的部署,建立一个「自定义部署」。
接下来该干什么就自己猜吧。