本文由 简悦 SimpRead 转码, 原文地址 cloud.tencent.com

当文章较多时,Hexo 生成较慢,比较耗时,而且还需要 手动发布到 gh-pages,过程比较繁琐,而 GitHub Actions 作为 GitHub 推出的免费…

当文章较多时,Hexo 生成较慢,比较耗时,而且还需要 手动发布到 gh-pages,过程比较繁琐,而 GitHub Actions 作为 GitHub 推出的免费 CI/CD 服务,正好可以用来解决这一问题,我们只需将源代码推送到 GitHub,由 Action 自动帮我们构建 Hexo, 并完成发布到 GitHub Pages,不仅可用于博客,也可用于自动发布在线文档。

在当前项目 Hexo 根目录新建 .github/workflows/deploy-hexo.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
34
35
name: Build and Deploy Hexo
on:
push:
branches:
- master
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout 🛎️
uses: actions/checkout@master

- name: Use Node.js 12
uses: actions/setup-node@v2-beta
with:
node-version: '12'

- name: Install Pandoc
run: |
sudo apt-get install pandoc

- name: Install and Build 🔧
run: |
npm install -g hexo-cli
npm install
hexo clean
hexo generate

- name: Deploy 🚀
uses: JamesIves/[email protected]
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BRANCH: gh-pages
FOLDER: public

补充:

  1. ${{ secrets.GITHUB_TOKEN }} 其中 GITHUB_TOKEN 为内置变量,无需在 secrets 手动添加 参考:Authentication in a workflow - GitHub Docs
  2. gh-pages 为目标 deploy 分支,master 为当前触发分支,如果你的开发分支为 main,你需要更改为 main, 并且,你可能需要做 BASE_BRANCH 设置,如下: 注意:最后一行,设置了开发源分支为 main
1
2
3
4
5
6
7
8
- name: Deploy 🚀
uses: JamesIves/[email protected]
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BRANCH: gh-pages
FOLDER: public
BASE_BRANCH: main

  1. 如果你没有使用 hexo-renderer-pandoc 来处理 Markdown 中的 LaTex 数学公式,那么无需下方此步骤:
1
2
3
4
- name: Install Pandoc
run: |
sudo apt-get install pandoc

GitHub: GitHub Pages Deploy Action

进行一次 git push 即可触发 Actons,接下来,查看日志:

如上图,构建成功,右上角点击还可以下载日志,查看原日志。

注意:建议,先执行 hexo d 发布一次,以便创建 gh-pages 分支

查看仓库,切换到 gh-pages 分支,如下可见构建情况:

前往 GitHub 首页,即动态页,可以看见一次 来自 github-actions bot 的推送:

感谢帮助!