用 GitHub Actions 实现自动部署流程:我的博客是怎么部署的

AI-摘要
Tianli GPT
AI初始化中...
介绍自己 🙈
生成本文简介 👋
推荐相关文章 📖
前往主页 🏠
前往爱发电购买
用 GitHub Actions 实现自动部署流程:我的博客是怎么部署的
LEO LENG用 GitHub Actions 实现自动部署流程:我的博客是怎么部署的
过去我用 Hexo 写博客,每次更新都要本地执行 hexo g && hexo d
,手动 push 到两个仓库(一个是源码,一个是部署)。虽然操作不复杂,但每次更新都要打开终端,稍微有点麻烦。后来,我用 GitHub Actions 搭了一套自动部署流程,只需要在 Qexo 面板里发布文章,博客页面就能自动更新,省心不少。
这篇文章就记录一下我整个部署流程的设置,主要包括:
- 仓库结构规划
- Actions 配置流程
- 实践中的注意事项和坑
1. 仓库结构
我把博客分成两个 GitHub 仓库:
hexo-source
:存放 Hexo 源码(markdown、主题等)hexo-blog
:部署仓库,用来托管生成后的静态页面(GitHub Pages)
这样一来,源码和部署内容隔离,部署仓库是纯 HTML,可以直接作为 GitHub Pages 的目标。
2. 编写 GitHub Actions 流程
在 hexo-source
仓库中,创建 .github/workflows/deploy.yml
,配置如下:
1 | name: Deploy Hexo Blog |
其中 external_repository
需要替换成你的部署仓库名。
3. 部署仓库设置
你的 hexo-blog
仓库需要:
- 设置默认分支为
main
(或你设定的其他部署分支) - 开启 GitHub Pages,指定来源为
main
分支根目录
4. 实际效果
现在,当我在 hexo-source
仓库的 main
分支 push 文章更新时:
- GitHub Actions 会自动拉取代码
- 安装依赖并执行
hexo generate
- 自动将
public
目录内容发布到hexo-blog
整个过程不需要我本地操作,基本等同于运行了 hexo g && hexo d
并 push 到部署仓库。
5. 注意事项和小建议
- 🔒 不要把
node_modules
和.deploy_git
目录提交进源码仓库 - ✅ 安装 Hexo 推荐用
npx hexo
而不是全局安装 - ⚠️
deploy.yml
中路径、分支名要严格对应 - 🔄 可以结合 Qexo 或其他写作平台,用 Webhook 触发 Actions 更新
- 💬 日志调试很重要,Actions 执行失败要及时查看具体错误
6. 小结
从手动部署到全自动部署,虽然配置过程有点繁琐,但一旦跑通之后非常省心。对于像我这样喜欢写点东西,又不想每次都手动部署的人来说,GitHub Actions 的 CI/CD 能力就是刚需。
你可以参考这套方式部署自己的博客,或者按需修改适配其他静态站点生成器(如 Hugo、VuePress、Astro 等)。
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果