【Hexo】自動化部署

目錄

使用 GitHub Action 持續部署

準備部署用公私鑰
建立 Action 檔
修改部署模式
完成持續部署

使用 Travis CI 部署

Travis CI是什麼?
使用方法

參考資料


使用 GitHub Action 持續部署

請注意,使用此方法 package.json 內
一定要包含 hexo-deployer-git 這個套件

準備部署用公私鑰

利用 git 指令生成公私鑰
ssh-keygen -f actions-deploy-key
執行完後,應該會在 Terminal 所執行的資料夾下
產生以下兩個檔案

  • actions-deploy-key
  • actions-deploy-key.pub

其中 actions-deploy-key 是私鑰
要新增到放置 Hexo 專案的儲存庫
actions-deploy-key.pub 是公鑰
新增到用來部署網站的 xxxxx.github.io 這個儲存庫

設定部署私鑰

打開 Hexo 專案的 GitHub 頁面
Settings -> Secrets -> 點選 New repository secret 按鈕

私鑰的 Name 可以自訂,只要和設定名稱統一即可
這裡示範設定名稱為 HEXO_DEPLOY
Value 內容就是用文字文件或其他程式
打開 actions-deploy-key 這個檔案後
將內容全數複製貼上

設定部署公鑰

接著來到 xxxxx.github.io 這個專案內
打開 Setting -> Deploy Keys -> Add deploy key
Title 輸入跟剛才一樣的 HEXO_DEPLOY
Key 內容也是打開 actions-deploy-key.pub 檔案後
把內容複製貼到這裡

之後往下拉
記得勾選 Allow write access
允許 push 行為
之後點 Add Key

這樣公私鑰就設置完成
接著來建立 GitHub 的 Action 檔案

建立 Action 檔

以下內容主要皆參考 這裡
僅按照客製化需求調整 push 監聽的分支
為方便翻閱筆記,以下簡單紀錄

在根目錄的 .github 資料夾下
新增 workflows 資料夾與 hexoAcions.yml 檔案
整體路徑為 ./.github/workflows/hexoAcions.yml

hexoAcions.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
name: 'hexo deploy'

## 監聽 source 分支若有 push 行為就執行
on:
push:
branches:
- source
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Use Node.js 12.x
uses: actions/setup-node@v1
with:
node-version: "12.x"
- name: init)init ssh
run: |
mkdir -p ~/.ssh/
echo "${{secrets.HEXO_DEPLOY}}" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
ssh-keyscan github.com >> ~/.ssh/known_hosts
git config --global user.name "xxxxx"
git config --global user.email "xxxxx@gmail.com"
- name: A)npm install
run: |
npm install
- name: B)npm install -g hexo-cli
run: |
npm install -g hexo-cli
- name: C) hexo d -g
run: |
hexo d -g

修改部署模式

GitHub Action 使用 SSH 傳輸協定而非 https
所以需要修改根目錄 _config.yml 的設定
將 deploy 的 repo 網址修改如下

1
repo: git@github.com:xxxxx/xxxxx.github.io.git

xxxxx 代換成 Github 的帳號名稱

完成持續部署

以上都完成後,將專案 commit 並 push
來到放置 Hexo 專案的儲存庫,並點下 Actions 頁籤
如果能夠看到剛 push 上去的 workflow 正在部署
就表示成功監聽 branch
並在每次專案 push 後
都會自動部署至 xxxxx.github.io 這個專案上

成功執行的 workflow 會變成綠色勾勾
如果報錯的話就點進 workflow 的 build 查看 console
看看是哪個環節出了問題
修正過後再測試一次看看


以上就是 Hexo 網頁
使用 GitHub 原生功能 Action 的持續交付整合

另一個曾經使用過的
持續部署軟體是 Travis CI
但因 Travis CI 的免費開源版
於 2021/6 公告關站
並全面轉向企業版
故不再繼續使用
以下僅作紀錄


使用 Travis CI 部署

Travis CI是什麼?

Travis CI 是一個線上持續整合服務平台
目前已由免費開源轉向企業版網站
可使用免費方案但有點數限制
用完後如要繼續使用,需要付費

使用方法

直接按照以下參考連結進行
試著學 Hexo - 奇淫技巧 - 自動化部屬(Travis CI)



參考資料

試著學 Hexo - 奇淫技巧 - 自動化部屬(GitHub Actions)
使用 GitHub Actions 自動部署 Hexo
GitHub Action 自動部署 hexo