Hexo 自动化部署:GitHub Actions 终极指南
1. 为什么选择 GitHub Actions?
- 解放双手: 告别繁琐的
hexo clean && hexo g && hexo d。 - 多端同步: 只要有浏览器,在公司电脑、iPad 或手机上直接修改 GitHub 里的 Markdown 文件,博客就会自动更新。
- 环境隔离: 不用担心本地 Node.js 版本升级导致博客跑不起来,GitHub 会每次提供一个干净的标准环境。
2. 准备工作
假设你的仓库分支结构如下(请务必确认):
source分支:存放博客源码(Markdown,_config.yml等)。main分支:用于展示生成的网页(HTML)。
第一步:配置权限(一次性)
- 进入 GitHub 仓库,点击 Settings -> Actions -> General。
- 找到 Workflow permissions,勾选 Read and write permissions。
- 点击 Save。
第二步:创建自动化脚本
在你的本地博客根目录下,创建文件 .github/workflows/deploy.yml。
第三步:填入配置(Pro 版)
复制以下代码,它包含了防坑配置:
1 | name: Deploy Hexo Blog |
3. 注意事项(必读)
- 不要手动运行
hexo d: 以后所有的部署都由 GitHub 接管。你只需要关注git push源码即可。 .gitignore很重要: 确保你的源码分支中不包含public/文件夹。因为public是由于 Action 现场生成的,如果源码里也有,可能会导致冲突。- 分支说明:
- Source (源码): 这里是
source分支。是你真正干活的地方。 - Pages (网页): 这里是
main分支。是给访客看的地方。 - 请去仓库 Settings -> Pages 中,确认 Build and deployment 的 Branch 选的是
main。
改动解析(为什么这么改?)
submodules: recursive: 很多好看的主题(Next, Butterfly)通常建议作为 submodule 安装。如果没有这一行,Action 下载代码时主题文件夹是空的,会导致生成失败。加上这行是“保命”操作。cache: 'npm': GitHub 每天有免费额度限制。开启缓存后,如果你没有新增插件,npm install几乎瞬间完成,既省时间又省资源。- Node 版本升至 20: 紧跟时代,Node 18 即将进入维护期末尾,新版 Hexo 对 Node 20 支持更好。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Touchsky's Blog!