使用 GitHub Action 自动部署 Hexo

注意:需要创建两个仓库

  • your_blog_name.github.io:编译后的仓库(本次教程没有涉及,网上搜下就有)
  • hexo_bloghexo 生成 blog 的仓库(本次教程重点会在这里)

创建个人访问令牌

access-token-1

注意要勾选repo权限和workflow权限

access-token-2

注意:生成TOKEN后要复制后保存好,因为在下次进来时这个值就看不到了

access-token-2-01

新建 Hexo Blog 仓库

建议使用private来建,防止其它人克隆

access-token-3

设置仓库的secrets

access-token-4

access-token-5

取名为 ACCESS_TOKEN 后面部署的时候会用到

access-token-6

配置 _config.yml

1
2
3
4
5
deploy:
type: git
repository: https://ACCESS_TOKEN@github.com/your_github_name/your_blog_name.github.io.git #这里的ACCESS_TOKEN就是我们刚刚设置的名称
branch: master #此处修改为自己存放 your_blog_name.github.io 的分支
message: deploy

创建 Workflow

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
name: Hexo Deploy

on: [push]

env:
GIT_USER: your_github_name #你的 github 用户名
GIT_EMAIL: your@email.com #你的 github 邮箱
DEPLOY_BRANCH: main #此处修改为自己存放 Hexo 源文件的分支

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: Download Source file
uses: actions/checkout@v2
with:
ref: ${{ env.DEPLOY_BRANCH }}

- name: Setup Node.js
uses: actions/setup-node@v1
with:
node-version: "12"

- name: Set env
env:
ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }}
run: |
git config --global user.email $GIT_USER
git config --global user.name $GIT_EMAIL
sed -i "s/ACCESS_TOKEN/$ACCESS_TOKEN/g" ./_config.yml

- name: Hexo Setup
run: |
npm install hexo-cli -g
npm install

- name: Hexo Deploy
run: |
hexo clean
hexo deploy

验证

默认推送后就会执行 Workflow

access-token-7