前言

自动化部署原本是给Hugo准备的,一直没成功,直到我搭好了Hexo自动化,再用Hexo的步骤来搭建Hugo然后成功了……

该教程仅对clone主题有效,npm下载主题无效

该教程与 Hexo -Action自动化部署(无指令) 大同小异 ,说白了还是看 自动化的源码

原教程源自 wolanx 大佬


教程

准备工作

  • 确保在配置过程中能访问Github ,无法访问看下面教程

如何优雅的加速Github

  • 下载 Github Desktop ,并 登录

  • 备份好本地源码! 备份好本地源码! 备份好本地源码!

  • 在博客 根目录 创建文件夹 命名 .github ,在 .github 文件夹下再 创建 一个文件夹 命名 workflows

  根目录/.github/workflows

自动化部署

备份好本地源码!!!

  • 博客仓库 clone 到 本地 ,记录好 本地路径

  • 找到 Current branch ,输入myblog ,点击 New branch ,再点击 Create branch

  • 等待创建分支,点击 Publish branch 推送到远端 PS: 仓库就会生成一个名为myblog的新分支,新分支会复制旧分支的内容

  • 回到 Github Desktop , 查看 Current branch 是否为 myblog , 否 则切换到 myblog

  • 在准备工作 4 中 workflows 文件夹下 新建文件命名 pipeline.yml ,填入以下内容 注意:把域名填上

name: Action

on:
  push:
    tags:
      - '*'
    branches:
      - myblog

env:
  REGISTRY: ghcr.io
  IMAGE_NAME: ${{ github.repository }}

jobs:
  build:
    runs-on: ubuntu-latest
    # permissions:
    #   contents: read
    #   packages: write
    concurrency:
      group: ${{ github.workflow }}-${{ github.ref }}

    steps:
      - name: checkout
        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.92.0'
          extended: true

      - name: build
        run: hugo --minify

      - name: deploy
        uses: peaceiris/actions-gh-pages@v3
        if: ${{ github.ref == 'refs/heads/myblog' }}
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          publish_dir: ./public
          cname: 域名 # 重点 !!!
  • 把克隆源码删除 ,再把本地源码复制进入 注意:把 根目录下 public 文件夹里的 .git 删掉,一定要删掉!不然无法推远端

  • 回到 Github DesktopSummary 随便填 , 点击Commit to myblog

  • 回到 Github仓库 , 等待 Actions 部署 ,即可


常见问题

  • 错误代码 Process completed with exit code 128. 解决方法: 仓库 => Settings => Actions => General => Workflow permissions 选择第一个 , 点击 Save ,重新部署即可

  • 错误代码 Process completed with exit code 2. / 1. 解决方法: 检查代码是否存在格式问题(一般都是格式问题)


补充

Hugo自动化部署后会在仓库生成一个新的分支gh-pages,切记不要删除 。

如果你是托管到Vercel,记得在Vercel更改推送分支为gh-pages (项目 => Settings => Git => Production Branch)

第一篇 Hexo -Action自动化部署(无指令)