- 记录以下配置通过Github Action自动部署博客的功能。
- 当然,也可以通过官方文档中教程的来创建一个自动部署官方文档
博客的部署
- 首先,先根据Hexo的官方文档生成一个新的博客官方文档
- 初始化完成过后,就可以通过终端输入:
hexo s
来运行博客了。 - 然后在Github上创建两个仓库,一个用于存放博客的源文件,一个仓库用于存放生成后的博客文件。
- 记得在存放生成博客文件的仓库里面设置开启Github Pages,路径为:
Settings -> Pages -> Github Pages
。 - 如果需要设置域名的话,除了在上述路径中配置绑定域名以外,还需要在Hexo生成的博客源文件中,创建一个名为
CNAME
的文件,然后写入绑定的域名,防止每次提交的时候绑定的域名失效。
- 记得在存放生成博客文件的仓库里面设置开启Github Pages,路径为:
设置自动部署
- 首先创建一个用于自动部署使用的密钥:
1
ssh-keygen -t rsa -b 4096 -f ~/.ssh/blog-deploy
- 然后就能在用户目录的.ssh目录下找到生成的公钥和密钥。
- 在 GitHub Pages 所在的仓库中添加刚才生成的公钥。
- 路径为:
Github Pages仓库页面 -> Settings -> Deploy keys -> Add deploy key
- title随意,key为上面生成的公钥,即:
blog-deploy.pub
文件。 - 勾上
Allow write access
,然后保存退出。
- 路径为:
- 在存放博客源文件的仓库中添加 “私钥”
- 路径为:
博客源文件仓库页面 -> Settings -> Secrets and variables -> Actions -> New repository secret
- title随意,Secret为上面生成的密钥,即:
blog-deploy
文件 - 保存退出
- 路径为:
- 然后cd到博客的源文件目录,安装一个Github部署的插件:插件文档
- 在博客的源文件根目录创建一个
.github/workflows/deploy.yml
文件,输入以下内容:(其中git相关的配置替换成自己的)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
47name: 自动部署 Hexo
on: [push]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [16]
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 "用户名" # 修改这里
git config --global user.email "邮箱" # 修改这里
- name: 安装 Hexo CI
run: |
export TZ='Asia/Shanghai'
npm install -g hexo-cli
- name: 安装依赖
run: |
cd "${GITHUB_WORKSPACE}"
npm install
- name: 部署博客
run: |
rm -rf .deploy_git
hexo g && hexo deploy
rm ~/.ssh/id_rsa - 最后将源文件push到存放源文件的仓库中,然后Github Action就能自动部署博客了。
- 以后每次去push的时候,都将会生成相应的博客文件。