發布HEXO部落格

Intro

一開始我是嘗試使用了 Github Pages
利用 TravisCI 可以發布到 github.io 沒有錯
但因為以下幾點原因導致我轉而使用 Gitlab Pages

  • 多一個 gh-pages branch
  • repo 必須是 public
  • customize domain 會多一個 CNAME 檔案
  • 最近剛好有在研究 gitlab ci

.gitlab-ci.yml

官網的範例抓下來放到 repo 下後 push 到 gitlab 基本上就可以完成發布了
但我做了一點改動

範例沒寫 stage 會是 test, 我把它設成 deploy
要先跑 setup.sh 去安裝一些我們需要安裝的 NexT plugins

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# This file is a template, and might need editing before it works on your project.
# Full project: https://gitlab.com/pages/hexo
image: node:10.15.3

pages:
stage: deploy
script:
- cat setup.sh | /bin/bash
- npm install hexo-cli -g
- test -e package.json && yarn
- hexo generate
artifacts:
paths:
- public
cache:
paths:
- node_modules
key: project
only:
- master

Deploy

如果你有自己的 domain 的話可以去 Settings > Pages 裡面做些設定
https 也可以順便打開, 並且強制開啟 https
接著跑 Let’s Encrypt 的驗證流程就可以了

這邊我也是第一次自己跑 Let’s Encrypt 的驗證流程
才發現是用 TXT record 的方式來驗證 domain 是不是你的
之前都是靠 Synology NAS 的 bot 去簽, 用 bot 去簽的話缺點就是 80 port 要對外

接著到 push 的 repo 裡面的 CI/CD 看看發布情形了
順利的話就可以在 https://[account].gitlab.io/[repo] 看到你的 HEXO 部落格了