使用Hugo + wercker自動部署GitHub Pages
使用Hugo建立GitHub Pages需要兩個分支(或兩個儲存庫), 分別存放Hugo項目及編譯後的靜態網頁, 因此每次修改網站, 都需要提交兩個分支的更改
使用wercker自動部署可以簡化工作流程. 只需提交Hugo分支的更改, wercker就能自動拉取Hugo分支, 然後編譯並提交到發佈分支
建立wercker application
- 在wercker註冊帳號, 並連結GitHub
- 進入Add application頁面建立application. 只需要選擇儲存庫, 其他選項保留預設值
設置訪問令牌
- 進入GitHub tokens頁面, 建立一個新令牌
- 進入你的wercker application頁面, 進入Environment分頁
- Key輸入GIT_TOKEN, Value輸入你建立的令牌, 然後Add
設置Workflows
- 在你的wercker application頁面, 進入Workflows分頁
- 點擊Pipelines下方的build, 在Ignore branches輸入master, 然後按Update
- 回到Workflows, 點擊Add new pipeline
- Name和YML Pipeline name都輸入deploy, 然後Create
- 回到Workflows, 點擊路線圖中, build右方的加號
- Execute pipeline選擇deploy, 然後Add
提交部署代碼
在Hugo分支建立wercker.yml, 貼上以下代碼, 將hugo-tranquilpeak-theme替換為你的theme, 完成後提交wercker.yml
box: golang:latest
build:
steps:
# Clone theme子模組
- script:
name: initialize and update git submodules
code: |
git submodule init
git submodule update --remote --recursive
# hugo build
- arjen/hugo-build:
version: "HEAD"
theme: hugo-tranquilpeak-theme # 替換為你的theme
deploy:
steps:
- install-packages:
packages: git ssh-client
# 提交public文件夾到master分支
- sf-zhou/gh-pages:
token: $GIT_TOKEN
branch: master
basedir: public
所有步驟完成後, 以後每次在Hugo分支進行提交, master分支都會自動更新