Please enable Javascript to view the contents

hugo 博客构建github pages

 ·  ☕ 3 分钟 · 👀... 阅读

原理:借助github actions,设置hugo源码actions,利用Personal access tokens关联hugo源码与github pages仓库构建,github pages仓库设置page对外访问

步骤:

0.新建hugo构建后的静态文件仓库/.github.io,设置page为项目根目录

1.个人中心设置 Setting-Developer Settings-Personal access tokens 勾选repo 和 admin:repo_hook权限并生成值,临时记录后面需要

2.源码新建分支github-actions ,创建.github/workflows/build.yml

 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
name: github pages # 名字自取

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

jobs:
 deploy: # 任务名自取
   runs-on: ubuntu-18.04 # 在什么环境运行任务
   steps:
     - uses: actions/checkout@v2 # 引用actions/checkout这个action,与所在的github仓库同名
       with:
         submodules: true  # 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: '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: username/usernmae.github.io # todo 修改成自己仓库,发布到哪个repo
         personal_token: ${{ secrets.ACTION_ACCESS_TOKEN }} # 发布到其他repo需要提供上面生成的personal access token
         publish_dir: ./public # 注意这里指的是要发布哪个文件夹的内容,而不是指发布到目的仓库的什么位置,因为hugo默认生成静态网页到public文件夹,所以这里发布public文件夹里的内容
         publish_branch: main # 发布到哪个branch
  1. 在源码repo中添加上面的personal access token:

进入repo的Settings-Secrets一栏,选择New repository secret,名称为ACTION_ACCESS_TOKEN,值为第二步生成的值

  1. 推送github-actions分支,可在hugo博客源码actions选项查看构建详情

  2. 合并master分支并修改.github/workflows/build.yml

1
2
3
4
on:
  push:
    branches:
      - github-actions # 改为master
  1. 访问构建好的github pages,类似:https://username.github.io/

参考:https://www.imeetyou.net/post/2020/hugo-github-actions/

分享
您的鼓励是我最大的动力

Jason Tan
作者
Jason Tan
Developer