最近有一個朋友找我,說她弄了一個 Hexo 部落格,想做 GitHub Actions
自動部署,奈何不會弄,只好讓我幫忙。
GitHub Actions
GitHub Actions 是
GitHub 推出的持續整合服務,最近不要錢了,用(白嫖)的人就多起來了。
程式碼
話不多說,直接上程式碼:
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 35 36 37 38 39
| name: "Hexo Blog Builder"
on: [push, pull_request]
jobs: build: name: "Hexo Blog Build" runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 with: fetch-depth: 1 - uses: actions/setup-node@v1 with: node-version: '12' - name: Install Hexo run: npm install -g hexo - name: Install Dependencies run: npm install - name: Clean Previous Build run: rm -rf docs - name: Hexo Clean run: hexo clean - name: Generate New Build run: hexo generate - name: Move docs/ run: mv public docs - name: Publish run: | mkdir -p ~/.ssh/ echo "${{ secrets.KEY }}" > ~/.ssh/id_rsa.pub chmod 600 ~/.ssh/id_rsa.pub ssh-keyscan github.com >> ~/.ssh/known_hosts git config --global user.name "Hexo Deploy Bot" git config --global user.email "nobody@nobody.nobody" git config --global core.quotepath false git add --all git commit -m "Hexo Blog Build" git push origin master
|
本 Action 需要你的 ssh 公鑰,也就是 id_rsa.pub
存在專案設定中的 Secrets 內。
TL;DR
具體實現很簡單,用 Hexo 自帶生成器生成到 public 目錄,把
public 目錄改名為 docs。最後 push
到專案裡。
push 使用 SSH Key,實現免密碼。
在 GitHub Pages 設定中,需要把 Source 改為 docs 目錄。
後記
如果大家有什麼改進的好方法,可以在下方評論!