GitHub Actions 自动部署 Hexo 博客
Hexo 官方文档的 GitHub Pages 部署方案[1]需要注册第三方账号且绑定信用卡,所以创建博客时选择了一键部署[2]的方案,但是需要手动使用
hexo clean && hexo d部署博客,有些麻烦,于是决定改为 GitHub Actions 自动部署。
准备工作
分别设置博客仓库和部署仓库,部署仓库为 GitHub Pages。
配置 SSH
在本地生成一对 SSH 密钥,注意更改文件名避免将正在使用的密钥覆盖。
1 | |
在博客仓库的 Settings -> Secrets -> Actions 中添加 SSH 私钥,命名为 SSH_DEPLOY_KEY。

在部署仓库的 Settings -> Deploy keys 中添加 SSH 公钥,注意勾选 Allow write access。


配置 hexo-deployer-git
安装 hexo-deployer-git。
1 | |
然后在 _config.yml 中添加以下内容[2]:
1 | |
编写 Workflow
创建 .github/workflows/deployment.yml,写入以下内容,注意修改仓库地址和 Git 配置。此时当 push 到博客仓库时,GitHub Actions 将会自动部署。
1 | |
Workflow 解析
两个 Checkout 的作用是切换到博客仓库最新提交,并且将部署仓库克隆到 .deploy_git,也就是 Hexo 的部署目录。
1 | |
下一步安装 Node,版本需要与博客使用的版本相同。
1 | |
设置提交的用户名和邮箱。
1 | |
将存储在仓库 Secrets 的 SSH 私钥存储到本地供 Git 使用。mkdir 是为了下一步可以在 ~/.ssh 目录中创建文件,chmod 设置权限,Git 才能使用私钥[3]。
1 | |
最后安装 Hexo 和依赖,运行 hexo d 部署博客。
1 | |
References
- 将 Hexo 部署到 GitHub Pages. Hexo. 2022-06-11 [2022-06-17]. (原始内容存档于2022-06-17). ↩
- 部署. Hexo. 2022-06-11 [2022-06-17]. (原始内容存档于2022-06-17). ↩
- 利用 Github Actions 自动部署 Hexo 博客. Sanonz. 2020-05-12 [2022-06-17]. (原始内容存档于2021-06-18). ↩
GitHub Actions 自动部署 Hexo 博客
https://blog.zhanganzhi.com/zh-CN/2022/06/0800d76d306e/