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/