in .github/workflows/action.yml:

name: auto deployment # 名字自取

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

jobs:
  deploy: # 任务名自取
    runs-on: ubuntu-20.04	# 在什么环境运行任务
    steps:
      - uses: actions/checkout@v2	# 引用actions/checkout这个action,与所在的github仓库同名
        with:
          submodules: false  # Fetch Hugo themes (true OR recursive) 获取submodule主题
          fetch-depth: 0    # Fetch all history for .GitInfo and .Lastmod

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

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

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

      - name: Upload Website
        uses: burnett01/rsync-deployments@5.1
        with:
          switches: -avzh
          path: "./public/*"
          remote_path: "/home/ubuntu/www/Blogs/Personal"
          remote_host: "101.42.141.88"
          remote_port: "22"
          remote_user: ubuntu
          remote_key: ${{ secrets.COMFLUTER_TOKEN}}
          
#      - name: Upload Website
#        uses: zhenyuWang/Upload-File-Action@v1.0.1
#        with:
#          username: "root"
#          server: "110.42.134.69"
#          port: "22"
#          ssh_private_key: ${{ secrets.WEBSITE_ACCESS_TOKEN}}
#          # 要上传文件所在目录
#          local_path: "./public/*"
#          # 远程服务器目标路径
#          target_path: "/www/wwwroot/blog"