博客搭建(六)-Github Actions自动部署Hexo到Github pages

前言

前面我们已经搭建并部署完我们的blog了,但是每次部署操作都很繁琐,有时可能只是改了个错别字,就需要重新run一遍命令,那么有没有什么办法能简化这个过程吗?今天的文章我们就来说下,如何自动化这个过程,这个自动化的过程一般称为CI/CD

Github Actions

GitHub Actions 是 GitHub 的持续集成服务。持续集成由很多操作组成,比如抓取代码、运行测试、登录远程服务器,发布到第三方服务等等。GitHub 把这些操作就称为 actions。
很多操作在不同项目里面是类似的,完全可以共享。GitHub 允许开发者把每个操作写成独立的脚本文件,存放到代码仓库,使得其他开发者可以引用。
如果你需要某个 action,不必自己写复杂的脚本,直接引用他人写好的 action 即可,整个持续集成过程,就变成了一个 actions 的组合。这就是 GitHub Actions 最特别的地方。

正文

创建私有仓库

首先创建一个私有仓库,用来存放我们的工程项目,也就是你的hexo工程。
将hexo工程push到远端(记得删除项目中所有的 .git文件夹)。

创建token

然后打开github网页,登录你的账号,进入setting页面。

拉到最下方,点击 Developer settings

创建Token

勾选全部的权限,名称随意。并点击「Generate token」完成生成。保存好这个令牌,它不会再次出现。

打开hexo项目的github仓库,进入token配置页面。

将上面步骤生成的token复制,并添加到此处

Tips: 不生成上面的key也是可以的,只要将你的ssh私钥,粘贴至上述token位置也是生效的,注意ssh不要设置密码。

配置 GitHub Action

在hexo项目中创建文件.github/workflows/hexoCI.yml,并复制下方代码,请仔细阅读注释,修改最后几行的提交设置。
这里我用的是node版本为 21.x ,(因为20.x会有部署失败的情况,不过后续新版本21.x已修复。)

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
# 自动化名称
name: Hexo Blog CI

# 触发条件
on:
push:
branches:
- main

# 设置环境
jobs:
build:
runs-on: ubuntu-latest

steps:
# check it to your workflow can access it
# from: https://github.com/actions/checkout
- name: Checkout Repository master branch
uses: actions/checkout@main

# from: https://github.com/actions/setup-node
- name: Setup Node.js 21.x
uses: actions/setup-node@master
with:
node-version: "21.1.0"

- name: 安装Hexo
run: |
npm install hexo-cli -g
npm install

- name: 设置密钥
env:
HEXO_DEPLOY_PRIVATE_KEY: ${{ secrets.HEXO_DEPLOY_PRIVATE_KEY }}
run: |
mkdir -p ~/.ssh/
echo "$HEXO_DEPLOY_PRIVATE_KEY" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
ssh-keyscan github.com >> ~/.ssh/known_hosts

- name: 设置Git信息
run: |
git config --global user.name 'yourUserName'
git config --global user.email 'yourUserName@123.com'

- name: Hexo三连
run: |
hexo clean
hexo generate
hexo deploy

将项目中修改push到远端。

验证

修改或新增某一篇文章,push到github。等待actions结束,查看网站上对应的文本是否发生变化。


博客搭建(六)-Github Actions自动部署Hexo到Github pages
https://houboye.github.io/2023/07/24/blog/blog-hexo-6/
作者
boye
发布于
2023年7月24日
许可协议