異常一

錯誤類型:跟模組安裝有關。

發生異常的 Workflow 步驟:actions/checkout@v4

錯誤訊息:Error: fatal: No url found for submodule path 'public' in .gitmodules

解決方法:

1
2
git ls-files --stage | grep 160000  #列出模組
git rm public  #刪除多餘的模組

異常二

錯誤類型:跟部署權限有關。

發生異常的 Workflow 步驟:Deploy

錯誤訊息:Action failed with "The process '/usr/bin/git' failed with exit code ...

解決方法:

  1. 建立新 ssh key,建立後會拿到兩個檔案 .pub 是公鑰,另一個是私鑰。
  2. 把公鑰設定到公開的 Github 儲存庫(用來發布為 Github Pages 的儲存庫)。
  3. 把私鑰設定到私密的 Github 儲存庫(用來放整個 Hugo 專案的儲存庫)。

Workflows 的設定檔

 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
# main.yml

name: Github-Pages

on:
  push:
    branches:
      - main

jobs:
  deploy:
    runs-on: ubuntu-20.04
    steps:
      - uses: actions/checkout@v4
        with:
          submodules: true
          fetch-depth: 0

      - name: Setup Hugo
        uses: peaceiris/actions-hugo@v2
        with:
          hugo-version: '0.121.2'

      - name: Build
        run: hugo --gc --minify --cleanDestinationDir

      - name: Deploy
        uses: peaceiris/actions-gh-pages@v3
        with:
          deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }}
          external_repository: lloyd3126/lloyd3126.github.io
          PUBLISH_BRANCH: main
          PUBLISH_DIR: ./public
          commit_message: ${{ github.event.head_commit.message }}
          cname: blog.nien.cc
          force_orphan: true

參考