文章中包含線上演示效果,請訪問墨抒穎的網站檢視效果
倉庫連結,點個免費的星星感激不盡。
已經使用HEXO正常構建GitHub頁面
根據github action 給hexo配置自動部署github page
前往墨抒穎的個人網站檢視純淨版
1. 為倉庫設定訪問金鑰
第一步先生成金鑰,開啟命令列並生成一組金鑰
ssh-keygen -f github-deploy-key -C "HEXO CD"
<!-- more -->
記得跳過密碼啥的,這裡連按三次回車就好
隨後我們會獲得兩個金鑰檔案,這兩個等下會用到
2. 上傳私鑰
github倉庫地址 → Settings → Secrets → New secret
點選new repository secret
新建倉庫金鑰
名字 HEXO_DEPLOY_PRI
內容 github-deploy-key
檔案內的所有內容
⚠不要輕易透露你的私鑰⚠
3. 上傳公鑰
這裡要分清你的倉庫->page的形式,公鑰被上傳的倉庫代表著要被部署的倉庫,github不支援同一個(部署)公鑰上傳至多個倉庫
不同倉庫
如果你的hexo程式碼和要部署的頁面不在同一個倉庫
比如你有一些暫時不方便公開的內容,或者你是不想公開你的Hexo程式碼,只想將靜態頁面(文字,圖片,網站主題所用的各個樣式和指令碼)部署到github page上其他的內容一律不包含
此時你需要將公鑰上傳到你要部署的倉庫中去
名字 `HEXO_DEPLOY_PUB
內容 github-deploy-key.pub
檔案內的所有內容
記得勾選允許寫入許可權
相同倉庫
與上一步類似,只是上傳到的倉庫地址和你的程式碼倉庫地址一樣,不過你一定要確定你有在配置中設定號正確的的分支
配置github action
這裡可以在github上點選 Action -> new workflow -> set up a workflow yourself
隨便挑個模板將內容放進去,也可以在程式碼倉庫中的.github/workflow
新增一個hexo-ci.yml
然後將以下內容放進該檔案中。
記得把 blog_source_branch
, username
, username@email.address
替換成你自己的
name: HEXO CI
on:
push:
branches:
- <blog_source_branch>
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [14.x]
steps:
- uses: actions/checkout@v1
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: Configuration environment
env:
HEXO_DEPLOY_PRI: ${{secrets.HEXO_DEPLOY_PRI}}
run: |
mkdir -p ~/.ssh/
echo "$HEXO_DEPLOY_PRI" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
ssh-keyscan github.com >> ~/.ssh/known_hosts
git config --global user.name "<username>"
git config --global user.email "<username@email.address>"
- name: Install dependencies
run: |
npm i -g hexo-cli
npm i
- name: Deploy hexo
run: |
hexo clean && hexo generate && hexo deploy
然後提交本次更改即可
配置Hexo deploy
開啟程式碼倉庫中的_config.yml
將 git 儲存庫從 http 形式更改為 ssh 形式。
釋出部署檔案的的分支應該倉庫配置的分支一樣
deploy:
type: git
repo: git@github.com:moshuying/moshuying.github.io.git
# example, https://github.com/hexojs/hexojs.github.io
branch: master
你已經完成了所有操作!推送一次看看效果吧。