GitHub Actions 自動部署 Hexo

Github Actions 是 GitHub 官方 CI 工具,與 GitHub 無縫集成。之前博客使用 TravisCI 實現的自動部署,現在轉用 GitHub Actions 部署,本文記錄部署流程。


GitHub Actions 自動部署 Hexo


簡單介紹下 GitHub Actions 中的術語:

  • workflow:表示一次持續集成的過程
  • job:構建任務,一個 workflow 可以由一個或者多個 job 組成,可支持併發執行 job
  • step:一個 job 由一個或多個 step 組成,按順序依次執行
  • action:每個 step 由一個或多個 action 組成,按順序依次執行

接下來介紹下操作步驟:

1.博客工程

GitHub 博客創建步驟非本文重點,請自行搜索。推薦使用 master 分支作為最終部署分支,源碼分支可以根據自己喜好創建,我這裡創建的是 hexo。

2.生成公私鑰

源碼分支中通過下面命令生成公鑰和私鑰。

<code>~ cd github/lujiahao0708.github.io 
~ git checkout hexo
~ ssh-keygen -t rsa -b 4096 -C "$(git config user.email)" -f github-deploy-key -N ""/<code>

目錄中生成兩個文件:

  • github-deploy-key.pub — 公鑰文件
  • github-deploy-key — 私鑰文件

公鑰和私鑰切記要添加到 .gitignore 中!!!

3.GitHub 添加公鑰

在 GitHub 中博客工程中按照 Settings->Deploye keys->Add deploy key 找到對應的頁面,然後進行公鑰添加。該頁面中 Title 自定義即可,Key 中添加 github-deploy-key.pub 文件中的內容。


GitHub Actions 自動部署 Hexo


注意:切記不要多複製空格!!!切記要勾選 Allow write access,否則會出現無法部署的情況。

4.GitHub 添加私鑰

在 GitHub 中博客工程中按照 Settings->Secrets->Add a new secrets 找到對應的頁面,然後進行私鑰添加。該頁面中 Name 自定義即可,Value 中添加 github-deploy-key 文件中的內容。

GitHub Actions 自動部署 Hexo

注意:切記不要多複製空格!!!

5.創建編譯腳本

在博客源碼分支(我這裡是hexo分支)中創建 .github/workflows/HexoCI.yml 文件,內容如下:

<code>name: CI
on:
  push:
    branches:
      - hexo
jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout source
        uses: actions/checkout@v1
        with:
          ref: hexo
      - name: Use Node.js ${{ matrix.node_version }}
        uses: actions/setup-node@v1
        with:
          version: ${{ matrix.node_version }}
      - name: Setup hexo
        env:
          ACTION_DEPLOY_KEY: ${{ secrets.HEXO_DEPLOY_PRI }}
        run: |
          mkdir -p ~/.ssh/
          echo "$ACTION_DEPLOY_KEY" > ~/.ssh/id_rsa
          chmod 600 ~/.ssh/id_rsa
          ssh-keyscan github.com >> ~/.ssh/known_hosts
          git config --global user.email "[email protected]"
          git config --global user.name "lujiahao0708"
          npm install hexo-cli -g
          npm install
      - name: Hexo deploy
        run: |
          hexo clean
          hexo d/<code>

6.Hexo 配置

在項目根目錄中修改 _config.yml ,增加部署相關內容:

<code>deploy:
  type: git
  repo: [email protected]:lujiahao0708/lujiahao0708.github.io.git
  branch: master/<code>

這裡的repo要填寫ssh的形式,使用http形式可能會有問題

7.驗證

現在 Hexo 已經和 GitHub Actions 已經集成了,接下來在博客源碼分支上推送代碼即可自動編譯部署。具體執行過程可以在 Actions 中查看:

GitHub Actions 自動部署 Hexo

歡迎訪問我的博客:https://lujiahao0708.github.io

Tips

歡迎收藏和轉發,感謝你的支持!(๑•̀ㅂ•́)و✧

歡迎關注我:後端小哥,專注後端開發,希望和你一起進步!


分享到:


相關文章: