hexo配合github action 自動構建(多種形式)

墨抒穎發表於2021-10-08

文章中包含線上演示效果,請訪問墨抒穎的網站檢視效果

倉庫連結,點個免費的星星感激不盡。

已經使用HEXO正常構建GitHub頁面

根據github action 給hexo配置自動部署github page

success.png

前往墨抒穎的個人網站檢視純淨版

1. 為倉庫設定訪問金鑰

第一步先生成金鑰,開啟命令列並生成一組金鑰

ssh-keygen -f github-deploy-key -C "HEXO CD"

<!-- more -->

記得跳過密碼啥的,這裡連按三次回車就好

setup-1.png

隨後我們會獲得兩個金鑰檔案,這兩個等下會用到

list-key-files.png

2. 上傳私鑰

github倉庫地址 → Settings → Secrets → New secret

upload-private-key.png

點選new repository secret新建倉庫金鑰

名字 HEXO_DEPLOY_PRI
內容 github-deploy-key檔案內的所有內容

upload-private-key-2.png

⚠不要輕易透露你的私鑰⚠

3. 上傳公鑰

這裡要分清你的倉庫->page的形式,公鑰被上傳的倉庫代表著要被部署的倉庫,github不支援同一個(部署)公鑰上傳至多個倉庫

不同倉庫

如果你的hexo程式碼和要部署的頁面不在同一個倉庫

比如你有一些暫時不方便公開的內容,或者你是不想公開你的Hexo程式碼,只想將靜態頁面(文字,圖片,網站主題所用的各個樣式和指令碼)部署到github page上其他的內容一律不包含

此時你需要將公鑰上傳到你要部署的倉庫中去

upload-public-key.png

名字 `HEXO_DEPLOY_PUB
內容 github-deploy-key.pub檔案內的所有內容

upload-private-key-2.png

記得勾選允許寫入許可權

相同倉庫

與上一步類似,只是上傳到的倉庫地址和你的程式碼倉庫地址一樣,不過你一定要確定你有在配置中設定號正確的的分支

配置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

你已經完成了所有操作!推送一次看看效果吧。

參考和推薦

相關文章