自动部署Hexo博客
iword-one Lv2

一、创建github仓库

创建两个github仓库,一个共有仓库和一个私有仓库。

  • 私有仓库用来存储Hexo项目源代码
    用master分支来存放项目源代码
  • 公有仓库用来存储编译之后的静态页面
    用gh-pages分支来存储静态页面

当私有仓库的master分支有内容push进来时,GitHub Actions 自动编译并且部署到公有仓库的gh-pages分支。

创建GitHub Token

创建一个有repo和workflow权限的GitHb Token

创建repository secret

步骤:私有仓库-> settings->Srcrets->New repository secrets。

新创建的secrets key在Actions配置文件要用到,因此变量名字要保持一致。

二、添加Actions配置文件

1.在你的hexo项目根目录下创建.github文件夹。
2.在.github文件夹下继续创建workflows文件夹。
2.在workflows文件夹下创建hexo-deploy.yml文件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
name: deploying Hexo project to GitHub pages
on:
push:
branches:
- master # master 分支有 push 行为时就触发这个 action

jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0

- name: Build and Deploy
uses: theme-keep/hexo-deploy-github-pages-action@master # 使用专门部署 Hexo 到 GitHub pages 的 action
env:
PERSONAL_TOKEN: ${{ secrets.HEXO_DEPLOY }} # secret 名
PUBLISH_REPOSITORY: XPoet/keep-blog # 公共仓库,格式:GitHub 用户名/仓库名
BRANCH: gh-pages # 分支,填 gh-pages 就行
PUBLISH_DIR: ./public # 部署 public 目录下的文件

三、触发自动部署流程

$ hexo init my-blog
$ cd my-blog
$ npm install
$ git init
$ git remote add origin 私有仓库的地址
$ hexo g
$ hexo s

git add .
git commit -m “deploy hexo source”
git push -u origin master

GitHub Actions 检测到 master 分支有内容 push 进来,会自动执行 action 配置文件的命令,将 Hexo 项目编译成静态页面,然后部署到公共仓库的 gh-pages 分支。
在私有仓库的Actions可以查看配置的action详细信息