本篇是可选操作教程

获取ssh密钥

在第二篇博客( 【个人博客网站】从零开发博客网站(二))中,已经写过如何获取密钥,故这里不再赘述。

私钥为id_rsa文件,公钥为id_rsa.pub文件(如果是命名过密钥名,公私钥的文件名则为自己命名的名字)

部署密钥

部署私钥

博客项目仓库 -> settings -> Secrets -> Actions

点击New repository secret,Name填HEXO_DEPLOY_PRI,Secret填私钥文件里的内容

部署公钥

不同仓库

如果你没新建仓库的话,请新建仓库(新建过了请忽略),然后上传公钥。

目的仓库(新建仓库) -> settings -> Deploy keys

点击add deploy key,title填HEXO_DEPLOY_PUB,key填公钥文件里的内容,并给读写权限

相同仓库

如果你想部署到和博客项目相同的仓库,请新建一个分支,公钥上传和上一步一样。这里需要注意的是,这种方式必须公开仓库,如果仓库内有不能公开的内容,请使用前一种方式

配置Github Actions

在hexo的根目录,创建.github/workflows/hexo-cl.yml,修改blog_source_branch'your username''your useremail'为自己的

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
name: HEXO CI

on:
push:
branches:
- blog_source_branch

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

steps:
- uses: actions/checkout@v2

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

- name: Configuration environment
env:
HEXO_DEPLOY_PRI: ${{secrets.HEXO_DEPLOY_PRI}}
run: |
mkdir -p ~/.ssh/
echo "$HEXO_DEPLOY_PRI" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
ssh-keyscan github.com >> ~/.ssh/known_hosts
git config --global user.name 'your username'
git config --global user.email 'your useremail'
- name: Install dependencies
run: |
npm i -g hexo-cli
npm i
- name: Deploy hexo
run: |
hexo clean && hexo generate && gulp && hexo deploy

配置Hexo deploy

打开_config.yml,将Git仓库从https形式修改成ssh形式

1
2
3
4
5
deploy:
- type: git
repository: git@github.com:MengNianxiaoyao/MengNianxiaoyao.github.io.git
#example, https://github.com/MengNianxiaoyao/MengNianxiaoyao.github.io.git
branch: master

推送

将代码推送后,GitHub Actions会自动完成构建