Back
Featured image of post Github Actions 推送 Github Page

Github Actions 推送 Github Page

使用 action 功能自动推送 Github Page

HUGO|Github Actions|Github Pages

使用方法主要参考了这篇 文章 。在这里我只是提炼一些关键点和遇到的坑。

1. 绑定 SSH Key

如果是两个独立的仓库的,将 Public Key 添加到 <YourName>.github.io 仓库,打开 setting 面板,找到 Deploy keys 选项,Title: Deploy Github Page(看你个人喜好)。Key: Public Key ;将 Private Key 添加到 another repository 仓库,打开 setting 面板,找到 Secrets 选项,Name: ACTIONS_DEPLOY_KEY(后面会用到)。Value: Private Key 。这里有一个坑,要复制整个 Private Key 的值作为 Value ,不然后面会报错。这是具体的issues

2. 配置 yml

 name: Github Pages

on:
  push:
    branches:
      - master

jobs:
  deploy:
    runs-on: ubuntu-18.04
    steps:
      - uses: actions/checkout@v2
        #with:
          #submodules: true  # Fetch Hugo themes (true OR recursive)
          #fetch-depth: 0    # Fetch all history for .GitInfo and .Lastmod

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

      - name: Build
        run: hugo

      - name: Deploy
        uses: peaceiris/actions-gh-pages@v3
        with:
          deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }}
          external_repository: YanTree/YanTree.github.io
          publish_branch: master     #推送的分支
          publish_dir: ./public      #要推送的文件夹
          commit_message: ${{ github.event.head_commit.message }}

注意调整上面 29-32 高亮行的值,ACTIONS_DEPLOY_KEY 对应的是上面 SecretNameexternal_repository 改成你对应的仓库名 <YourName>/<YourName>.github.io

反思

如果是使用 SSH 作为 Token ,在电脑重装系统或者更换电脑的情况下,我们每一次都要重新更新 Deploy keysSecrets 的值,对于我这种动不动就重装系统的人不太友好😁。所以我新建了一个 Personal access tokens 专门干这件事儿,目前看来是避免了上诉的痛点。本来是打算使用 GITHUB_TOKEN 的,都不要额外配置,但是这个 TOKEN 只适用于同一个仓库,这是具体的 issues,如果你是使用的同一个仓库的话,就可以使用这个功能了。