使用 GitHub Actions 实现博客自动化部署1.0

第一步

  • 偷个懒,先把 杨幂的脚 博客内容看到第 5 步结束,第 6 步 不要 挂载到 Cloudflare Pages,这里开始不一样了
    180204.webp
  • 先把这部分 复原
1
2
3
4
5
6
7
8
9
# Extensions
## Plugins: https://hexo.io/plugins/
## Themes: https://hexo.io/themes/
theme: anzhiyu

# Deployment
## Docs: https://hexo.io/docs/one-command-deployment
deploy:
type: ''
  • 继续在 VSCode 终端上输入命令,在博客根目录里安装最新版主题
1
git clone -b main https://github.com/anzhiyu-c/hexo-theme-anzhiyu.git themes/anzhiyu
  • 第一次使用需要安装 pug 以及 stylus 的渲染器
1
npm install hexo-renderer-pug hexo-renderer-stylus --save
  • 如果你是 windows 系统就请手动将/themes/anzhiyu/_config.yml 复制到根目录下并重命名为 _config.anzhiyu.yml 即可。
  • 以后如果修改任何主题配置,都只需修改 _config.anzhiyu.yml 的配置即可。

注意:(简单点就是动外面的这个 _config.anzhiyu.yml,别去碰里面那份)

  • 只要存在于 _config.anzhiyu.yml 的配置都是高优先级,修改原 _config.yml 是无效的。
  • 每次更新主题可能存在配置变更,请注意更新说明,可能需要手动对 _config.anzhiyu.yml 同步修改。
  • 想查看覆盖配置有没有生效,可以通过 hexo g --debug 查看命令行输出。
  • 如果想将某些配置覆盖为空,注意不要把主键删掉,不然是无法覆盖的

VSCODE 终端首次执行报错

  • 使用管理员身份打开 powershell ,输入以下命令
1
Set-ExecutionPolicy RemoteSigned

2.到这里就开始转换策略

  • 修改开始部署的 Github 仓库名称,任意都行,反正不能是 <用户名>.github.io,举个例子:blog-demo
    400898.webp
  • 在本地新建 txt,修改其中的内容,然后把文件改成 push_blog.sh 保存 (不要乱改名字)
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
#!/bin/bash

# 定义本地和远程仓库名称
LOCAL_REPO="blog-demo" #本地博客的文件夹名
GIT_REPO="git@github.com:用户名/仓库名.git" # 替换为你自己的用户名和仓库名
GIT_EMAIL="邮箱" # 替换为你自己仓库账号的邮箱
GIT_USER="用户名" # 替换为你自己仓库账号的用户名
PUSH_REMAKE="由 git bash 自动提交"
THEME_URL="https://github.com/anzhiyu-c/hexo-theme-anzhiyu.git" # 安知鱼主题子模块 URL
# ---------------------------以下内容无需修改-----------------------------

git config --global core.autocrlf true

echo "检查 SSH 配置..."
SSH_OUTPUT=$(ssh -T git@github.com 2>&1)
if echo "$SSH_OUTPUT" | grep -q 'success'; then
echo "SSH 配置正确,连接 GitHub 成功"
else
echo "错误:SSH 配置不正确,请确保 SSH 密钥已设置,并添加到 GitHub"
exit 1
fi

cd "$LOCAL_REPO" || { echo "目录 $LOCAL_REPO 不存在,脚本即将退出。"; exit 1; }
if [ ! -d ".git" ]; then
git init
git remote add origin "$GIT_REPO"
git config --global user.email "$GIT_EMAIL"
git config --global user.name "$GIT_USER"
echo "已初始化新的 Git 仓库并设置远程仓库"
fi
if [ -d "themes/anzhiyu/.git" ]; then
git rm -r --cached themes/anzhiyu
rm -rf themes/anzhiyu/.git
echo "已移除嵌套的 Git 仓库:themes/anzhiyu"
fi
if [ ! -d "themes/anzhiyu" ]; then
git submodule add "$THEME_URL" themes/anzhiyu
echo "已添加子模块:$THEME_URL"
else
echo "子模块已存在,更新子模块"
git submodule update --init --recursive themes/anzhiyu
fi

git checkout -B main
echo "已切换到 'main' 分支"
git add .
echo "已将所有文件添加到暂存区"

if ! git diff --cached --quiet; then # 仅在有更改时提交
git commit -m "$PUSH_REMAKE"
echo "已提交更改"
else
echo "没有更改需要提交"
fi

git pull origin main --rebase
echo "已拉取远程更改并合并"
git push -u origin main
echo "已将本地更改推送到远程仓库"
echo "操作完成!"
  • 再新建一个 txt,修改内容保存之后,起名 run.bat(不要乱改名字)
1
2
3
4
@echo off

"C:\Program Files\Git\bin\bash.exe" -c "./push_blog.sh"
pause
  • 都弄好之后以管理员身份运行 run.bat,下图这样就是成功了
    786783.webp

  • 现在可以部署到 Cloudflare 了

  • 新建 pages,链接 github,选择博客仓库,这里需要 填写构建信息 (别填错了),填好之后点击部署
    300910.webp

1
npm run build
1
public

3.接下来需要下载 Github 桌面端,认识英文可以不装汉化

giuhub桌面端
github汉化

  • 登录你的 github 账号,点击文件,选择克隆存储库,选择你心仪的文件夹保存,打开 VSCode 修改你的博客信息
  • 后续当你在 VSCode 改好之后,返回 github 桌面端,按顺序点击就可以完整的推送到你的仓库
    888282.webp
    297469.webp
  • VSCode 预览命令,要用这个哦,推送直接用 github
1
hexo clean; hexo g; hexo s

后话

当你电脑损坏或者换地方编辑很简单,只需要装上 giuhub 桌面端,再次克隆仓库到本地文件夹

  • Node(必须)
  • Git(必须)
  • VSCode(非必须),但是这个好用,当然你会别的也行

第一次预览之前需要安装依赖

1
npm i

这里再次感谢青云志大佬提供的方案,让我的博客不会丢失了
搭建 hexo 博客 + 安知鱼主题,直接部署到 CF Pages,实现在 git 里写文章后直接发布 | 青云志