本文章只是记录一下步骤,如果你想看更加详细的文章,可以参考以下内容:

新建GitHub Action

.github/workflows目录下新建一个deploy.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
name: deploy
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Node
uses: actions/setup-node@v4
with:
cache: 'npm'
- name: Install dependencies
run: |
npm install -g hexo-cli
npm install hexo-renderer-pug hexo-renderer-stylus hexo-wordcount
npm install
- name: Build
run: |
hexo generate
- name: Deploy
uses: easingthemes/ssh-deploy@main
env:
SSH_PRIVATE_KEY: ${{ secrets.ACCESS_TOKEN }}
ARGS: "-avz --delete"
SOURCE: "public/"
REMOTE_HOST: ${{ secrets.REMOTE_HOST }}
REMOTE_USER: ${{ secrets.REMOTE_USER }}
TARGET: ${{ secrets.TARGET }}

生成RSA密钥对

注意不要设置密码:

1
ssh-keygen -m PEM -t rsa -b 4096

把生成的公钥加入到authorized_keys中。

配置GitHub Secrets

生成RSA密钥对(注意不要设置密码),并上传私钥到GitHub的Secrets中,名称为ACCESS_TOKEN

设置ACCESS_TOKENREMOTE_HOSTREMOTE_USERTARGET的值,分别为私钥、服务器地址、用户名、目标目录。

把你的仓库推送到GitHub

这一步就不用多说了。