利用 GitHub Actions 自动部署 Hexo
前言
本文仅介绍用 GitHub Actions 自动部署 Hexo 到 GitHub Pages。且假设你目前是用本地用 Hexo 把博客发布到 GitHub Pages 的。
正常的,我们创建、修改一篇博文需要经历以下步骤:
- 在博客根目录
hexo new '文章名'
- 找到
.md
文件打开编辑 - 发布
hexo clean
,hexo g
,hexo d
而且上传的是渲染好的博客,源文档还在本地,如果异地编辑还不方便。
多地同步请参考(请先看完):HEXO 多地同步,然后你会知道如何将源文件上传到 GitHub 仓库。
本文将教你如何配置 GitHub Actions 实现在本地上传源文件后自动部署到 GitHub Pages。注意,这个 Action 针对的是存放 Hexo 源文件和网站文件分开存放的场景。
改 _config.yml
如果你的 _config.yml
以前是这样配置的:
1 | deploy: |
请将 repo
改成 ssh 格式:
1 | deploy: |
配置 ssh 密匙
生成 SSH Key,运行命令:
1 | ssh-keygen -t rsa -b 4096 -C "Hexo Deploy Key" -f github-deploy-key |
会在当前目录生成两个文件,github-deploy-key
为私钥,github-deploy-key.pub
为公钥。
私钥存放在 Hexo 源文件的仓库里:
- 进入 Hexo 源文件的 GitHub 仓库
- Setting -> Secrets -> New secret
- Name 填
HEXO_DEPLOY_KEY
注意大小写,不要拼错 - Value 填
github-deploy-key
(私钥)中的内容
公钥放到 GitHub Pages 对应的仓库里:
- 进入 GitHub Pages 对应的仓库
- Settings -> Deploy keys -> Add deploy key
- Title 填
HEXO_DEPLOY_PUB
(可以自定义) - Key 填
github-deploy-key.pub
(公钥)中的内容 - Allow write access 务必勾上
创建 workflow
在私人仓库(Hexo 源文件)里点 Actions,创建一个文件 .github/workflows/deploy.yml
,deploy
这个名可以改,但路径不能动。
内容如下:
1 | name: Hexo Deploy |
注意:仔细看注释,你需要填写自己的邮箱、用户名。你可能还要修改分支名(把文件中的 master
换成仓库默认分支)。
最后
只要在本地将源文件 git push
,GitHub Actions 就会自动部署了。若有错误可以到 GitHub 仓库里 Actions 中查看报错。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Jason Fan.!
评论