利用Github actions部署Hugo

记录一次利用Github actions部署Hugo博客

安装和配置Hugo

根据hugo文档安装hugo和配置theme等

部署
  1. 创建.github/workflows,新建文件hugo-deploy.yaml
 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
# hugo-deploy.yaml
name: hugo publish

on:
  push:
    branches:
    # 默认分支
    - main

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

    - name: Setup Hugo
      uses: peaceiris/actions-hugo@v2
      with:
        extended: true
        hugo-version: '0.92.1'

    - name: Build
      run: hugo --minify

    - name: Deploy
      uses: peaceiris/actions-gh-pages@v2
      env:
        ACTIONS_DEPLOY_KEY: ${{ secrets.ACTIONS_DEPLOY_KEY }}
        EXTERNAL_REPOSITORY: bankroft/bankroft.github.io
        PUBLISH_BRANCH: main
        PUBLISH_DIR: ./public
      with:
        emptyCommits: false
        commitMessage: ${{ github.event.head_commit.message }}
  1. ssh-keygen等生成ssh key

  2. 在GitHub新建repository用来放hugo new site生成的内容,名称不能与<username>.github.io相同

  3. 在刚创建的的repository->settings->secrets->actions->new repository secret, name为ACTIONS_DEPLOY_KEY,Value填写生成的sshkey 私钥

  4. 在GitHub新建public repository,名称为<username>.github.io,用来存放github page的内容,也就是hugo生成的public里的内容

  5. 在第二个repository->settings->deploy keys->add deploy key, key填生成的sshkey 公钥,title任意

  6. 将hugo new site生成内容push到第一个repository,然后到action里查看运行结果,如果有报错的话,action里查看log修改

Licensed under CC BY-NC-SA 4.0