GitHub-Action部署hexo
使用Github Action自动化部署hexo博客。
做这个的目的是:第一,解放双手。在这之前,hexo部署到github都是要hexo三连,完成这个后,一条命令git三连(下方git命令的后三个)就可以把博客部署上线。第二,也是最重要的,随着文章的增加,使用hexo三连耗费的时间会越来越多,在这期间不能退出git,需要一直等待上传部署完毕,而自动化后,基本就是秒传,后面的部署交给github action就好,相当的快。
功能原理
我对它的个人理解是:github的page repository即公共的,你上线网站的仓库。或者简单讲就是以github用户名+github.io作为仓库名的仓库,github的普通私有仓库只是存储代码,并不能用来线上访问和本地hexo站点之间的关系是这样的:page repository和普通私有仓库在建立好关系后会一直”对话“,page repository问私有仓库你变了没,如果普通私有仓库发生变化,page repository就会立即也同步发生变化,变化与否是同步的;而hexo本地是hexo博客作者直接接触的,hexo本地发生变化,作者只需要把变化发给私有仓库即可。为啥不直接发给page repository,因为hexo是静态页面,每次直接部署都要全部清除缓存,再生成,再部署(即hexo三连),每次都全部清零重新部署,耗费大量时间。自动部署快的原因是私有仓库已有的就无需耗费时间生成了。
账号与私有仓库
准备账号token,私钥和公钥;创建github私有仓库;给仓库添加环境变量。储存源码选择私有仓库会很安全!!
获取账号token,私钥和共钥,已经有的可以跳过此步
私钥是:id_rsa,将私钥配到仓库变量,下面会讲到
公钥是:id_rsa.pub,将公钥配置到github账号,上述链接有说
创建私有仓库
- 登录github账号,新建仓库
- 仓库名,自己随便写,我输的zdbs
- 描述可选,我输zdbs
- 选择私有
- 点击创建
配置私有仓库的环境变量
name | value |
---|---|
GITHUBUSERNAME | 你的github账号用户名 |
GITHUBEMAIL | 注册github账号的邮箱 |
GITHUBTOKEN | 之前获取的token令牌 |
HEXO_DEPLOY_PRI | 之前获取的私钥 |
本地站点根目录
- 在\BlogRoot\.github 文件夹下新建workflows文件夹
- 在workflows文件夹下新建autodeploy.yml文件
- 将以下代码复制到autodeploy.yml
注意,下方代码和原创相比修改了四处,其中三处将master改为main,再有就是将最后几行的其他平台删除,仅保留了github。github平台的,这三处master分支一定改为main分支。
1 | name: 自动部署 |
git命令行
进入你的博客根目录,右键gitbash here,把下面代码复制粘贴进去
第二条命令的origin后面输入私有仓库的SSh链接;格式为git@github.com:账号用户名/私有仓库名.git
1 | git init |