建立仓库

GitHub上建立一个私有仓库,并把Hexo源代码上传到仓库,点击Actions,然后点击Set up a workflow yourself

粘贴下列代码

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
52
53
54
55
56
57
58
59
60
61
name: 自动部署 Hexo

on:
push:
  branches:
    - main

jobs:
build:
  runs-on: ubuntu-latest
  strategy:
    matrix:
      node-version: [22.x]

  steps:
    - name: 开始运行
      uses: actions/checkout@v1

    - name: 设置 Node.js ${{ matrix.node-version }}
      uses: actions/setup-node@v1
      with:
        node-version: ${{ matrix.node-version }}

    - name: 配置 Git 环境
      env:
        ACTION_DEPLOY_KEY: ${{ secrets.ACTION_DEPLOY_KEY }}
      run: |
        mkdir -p ~/.ssh/
        echo "$ACTION_DEPLOY_KEY" > ~/.ssh/id_rsa
        chmod 600 ~/.ssh/id_rsa
        ssh-keyscan github.com >> ~/.ssh/known_hosts
        git config --global user.name "GitHub用户名"
        git config --global user.email "GitHub邮箱"

    - name: 安装 Hexo CI
      run: |
        export TZ='Asia/Shanghai'
        npm install hexo-cli -g

    - name: 安装插件
      run: |
        npm install hexo-renderer-stylus --save
        npm install hexo-renderer-pug --save
        npm install hexo-deployer-git --save
        npm install hexo-generator-search --save
        npm install hexo-generator-archive --save
        npm install hexo-generator-category --save
        npm install hexo-abbrlink --save
        npm install hexo-wordcount --save
        npm install hexo-generator-index --save
        npm install hexo-generator-tag --save
        npm install hexo-renderer-ejs --save
        npm install hexo-renderer-marked --save
        npm install hexo-renderer-stylus --save
        npm install hexo-theme-landscape --save
       
    - name: 部署博客
      run: |
        rm -rf .deploy_git
        hexo g -d
        rm ~/.ssh/id_rsa

然后点击Start commit

注意下面三段信息要更换成自己的

1
2
3
4
git config --global user.name "GitHub用户名"
git config --global user.email "GitHub邮箱"
repository: git@github.com:Yunmengxian/cron.pub

其中repository: git@github.com:Yunmengxian/cron.pub在hexo根目录_config.yml配置文件中。

配置git

生成密钥对

可以用代码生成,也可以找在线生成。密钥长度位数4096 格式 openssh

1
ssh-keygen -t rsa -b 4096 -f ~/.ssh/GitHub-actions-deploy

在 GitHub Pages 所在的仓库中添加 “公钥”

找到仓库的Settings - Deploye keys - Add deploy key

  • Title 填入:ACTION_DEPLOY_KEY
  • Key 填入:# 步骤 1 生成的密钥对中的公钥 勾上Allow write access

在存放 Hexo 源文件的仓库中添加 “私钥”

PS: 跟上一步骤 2 中的仓库可以是同一个,也可能不是同一个。根据自己的选型设置。

找到仓库的Settings - Secrets - Add a new secret

  • Name 填入:ACTION_DEPLOY_KEY
  • Value 填入:# 步骤 1 生成的密钥对中的私钥

运行

随便修改一个东西,比如提交一篇文章,就可以看到变化了

参考资料

Hexo 自动部署 - 啊不都 (oplog.cn)

GitHub Actions 自动部署 Hexo 脚本 · 大大的小蜗牛 (eallion.com)