Github Token 生成 & 设置

  1. github -> Settings -> Developer Settings -> Personal access tokens 新增 Tokens(classic)
  2. 点击Generate new token
  3. 点击你想使用Action的github仓库 Settings -> Secrets and variables -> Actions -> New respository secret.
  4. 填上名字ACTION_ACCESS_TOKEN和第一步生成的 token,保存

在项目根目录增加文件

.github/workflows/hugo.yml

name: HugoAutoDeploy # 名字自取

on:
  push:
    branches:
      - main # 这里的意思是当 main分支发生push的时候,运行下面的jobs,这里先改为github-actions

jobs:
  deploy: # 任务名自取
    runs-on: ubuntu-latest	# 在什么环境运行任务
    steps:
      - uses: actions/checkout@v2
        with:
          token: ${{ secrets.ACTION_ACCESS_TOKEN }}
          submodules: true  # Fetch Hugo themes (true OR recursive) 获取submodule主题

      - name: Setup Hugo	# 步骤名自取
        uses: peaceiris/actions-hugo@v2	# hugo官方提供的action,用于在任务环境中获取hugo
        with:
          hugo-version: 'latest'	# 获取最新版本的hugo
          # extended: true

      - name: Build
        run: hugo --minify	# 使用hugo构建静态网页

      - name: Deploy
        uses: peaceiris/actions-gh-pages@v3	# 一个自动发布github pages的action
        with:
          # github_token: ${{ secrets.GITHUB_TOKEN }} 该项适用于发布到源码相同repo的情况,不能用于发布到其他repo
          external_repository: zfunnily/zfunnily.github.io	# 发布到哪个repo
          personal_token: ${{ secrets.ACTION_ACCESS_TOKEN }}	# 发布到其他repo需要提供上面生成的personal access token
          publish_dir: ./public	# 注意这里指的是要发布哪个文件夹的内容,而不是指发布到目的仓库的什么位置,因为hugo默认生成静态网页到public文件夹,所以这里发布public文件夹里的内容
          publish_branch: main	# 发布到哪个branch

token 和 personal_token 使用的是变量,这个遍历会读取你在github的action上配置的ACTION_ACCESS_TOKEN的值。

参考

https://lucumt.info/post/hugo/using-github-action-to-auto-build-deploy/

--完--