0%

使用 GithubAction 自动更新部署 Hexo 博客

什么是Github Action

  • Github Actions是Github推出的一个新的功能,可以为我们的项目自动化地构建工作流,例如代码检查,自动化打包,测试,发布版本等等。入口在项目 Actions

该文章不涉及Github Action以及Hexo的教学。请自行查阅

添加Github Action

可以在网页上 Actions 里编辑配置文件,也可以直接在源文件的仓库的本地目录添加直接 commit。

  • 本文直接在源文件的仓库的本地目录提交配置文件,将配置文件存至原文件仓库目录下的 .github/workflows/随便起名.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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
name: Hexo CI CD
on:
workflow_dispatch:
push:
branches:
- main
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout 🛎️
uses: actions/checkout@v2
with:
persist-credentials: false
submodules: recursive
- name: "Using Special Node Version"
uses: actions/setup-node@v2
with:
node-version: "12"

- name: Generate Hexo site ⚗️
run: |
echo "Github Action Env Checking..."
echo "Node Version: `node -v`"
echo "Coping theme config file"
CONFIG_FILE="_config.yml"
NEXT_THEME_FILE="next.theme.yml"
THEME_DIR="themes/next"
TARGET_FILE="${THEME_DIR}/${CONFIG_FILE}"
echo "Copying theme config file"
cp "${NEXT_THEME_FILE}" "${TARGET_FILE}"
head -n 1 "${TARGET_FILE}"
# Install dependencies && update env
echo "Install npm dependencies"
npm i
echo "Load hexo binary..."
export PATH="$PATH:./node_modules/.bin"
echo "Hexo version: $(hexo -v)"
echo "Gulp version: $(gulp -v)"
echo "Gulp Tasks" && gulp --tasks
# Generate site && minify site files, such as: html, js, css
hexo g --debug && gulp

- name: Deploy 🚀
uses: JamesIves/github-pages-deploy-action@3.6.2
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BRANCH: gh-pages # The branch the action should deploy to.
FOLDER: public/ # The folder the action should deploy.
CLEAN: true # Automatically remove deleted
PRESERVE: true

后续工作

  • 构建出来的文件将会部署到 gh-pages 分支,将 Github Pages 的分支设置为其即可
  • 主题文件名(next.theme.yml)请自行修改
  • 需要配置主题可以参考: Hexo Next 主题安装、配置及美化
-------------本文结束再接再厉-------------

本文标题:使用 GithubAction 自动更新部署 Hexo 博客

文章作者:IITII

发布时间:2021年05月29日 - 19:05

最后更新:2021年05月29日 - 19:05

原始链接:https://iitii.github.io/2021/05/29/1/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。