使用 GitHub Actions 构建 Hugo 博客,并自动发布到 GitHub Pages。
关键词#
Hugo、GitHub Actions、GitHub Pages、自动部署
GitHub Actions 提供持续集成与持续部署(CI/CD)能力,帮助自动化软件工作流。
可以直接在 GitHub 上构建、测试、部署代码,并按照团队需要管理代码评审、分支
和问题分类。
我使用 GitHub Actions,将站点源文件
(例如 hugoBlog source) 自动部署 到 GitHub Pages,例如 liugangjian.github.io。
博客项目架构如下图,共涉及三个仓库:
- liugangjian.github.io:公开仓库,保存构建后的输出文件。
- hugoBlog Source:私有仓库,保存网站源代码。
- draw.io:公开仓库,保存文章所用图片。

在 hugoBlog Source 目录下创建 .github/workflows/deploy.yml 文件。
向 hugoBlog 仓库推送代码时,GitHub Actions 会帮助构建并部署到 liugangjian.github.io。
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
| # This is a basic workflow to help you get started with Actions
name: hugo-deploy-CI
# Controls when the action will run.
on: push
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# docs:https://github.com/peaceiris/actions-gh-pages
deploy:
runs-on: ubuntu-18.04
steps:
- name: Git checkout
uses: actions/checkout@v2
- name: Setup hugo
uses: peaceiris/actions-hugo@v2
with:
hugo-version: '0.81.0'
extended: true
- name: Build
run: hugo
- name: Deploy
uses: peaceiris/actions-gh-pages@v3
with:
personal_token: ${{ secrets.PERSONAL_TOKEN }}
external_repository: liugangjian/liugangjian.github.io
publish_dir: ./public
keep_files: true
publish_branch: master
|