用github actions自动化布署hexo博客-从私有仓库到公共仓库
文章目录
常规的hexo使用方式如下:
写markdown文件保存->hexo generate
生成文件->hexo deploy
部署到github仓库->把源文件备份到博客仓库的source分支或者备份到一个私有仓库
利用Github-Actions
+Powershell脚本
可以把写博客的流程简化为:
写markdown文件保存->打开powershell,输入pushhexo
指令完成上面的所有步骤
1 前提
后面的所有内容都假设你已经能正常用hexo deploy
布署博客,这表示你的环境已经满足下面几点要求:
- 有github.io对应的仓库
- 安装了git且设置了秘钥,能执行常规操作
2 创建一个备份仓库
因为配置文件中有一些敏感信息,所以我选择创建一个私有仓库,过程不表,假设命名为hexo
。
这里要注意,如果我们安装了主题,并且是从github上clone下来的,那么主题文件夹中(比如themes/next/)会有名为.git
的隐藏文件夹用于git同步,需要把它删除,因为我们备份到私有仓库的时候是把主题文件一起备份的(这样才能在自动化部署中保留主题),嵌套的git仓库会报错,当然删除以后就不能用git pull
的方式更新主题了。
把本地的博客文件夹上传到hexo
私有仓库,并保证.gitignore
文件中包含以下几项,避免以前手动生成及部署过的文件也作为源文件上传:
- node_modules/
- public/
- .deploy*/
3 创建Github Actions脚本
创建一个.github/workflows/pages.yml
文件(没有目录就先创建目录),这里参考的hexo官方的脚本并稍作修改:
|
|
上面指令用注释进行了简单的说明,列一下需要修改的几个地方:
- personal_token:如果设定的秘钥名称不是HEXO_DEPLOY
,那么这里也需要修改
- external_repository:改成你自己的源文件备份仓库
4 创建和设置秘钥
我选择的是personal_token,生成方式用文字说明:
在github点击右上角头像->Settings->Developer settings->Personal access tokens->Generate new token,这里随便起一个名字就行,选上repo
的所有权限和workflow
权限,点击生成,复制秘钥,这个秘钥只显示一次,如果没有保存,重新生成一即可。
设置秘钥:
选择你备份源文件的私有仓库(hexo)->Settings->Secrets->New repository secret,这里命名为HEXO_DEPLOY
,跟前面脚本中的名字对应,把秘钥内容复制进去保存。
5 写Powershell脚本进一步简化操作
上面的步骤完成以后,我们仍然需要手动的执行git add,git commit,git push
这些操作,这里借助powershell
脚本实现简化。
先找开powershell
,执行$profile
,会显示配置文件位置,打开这个配置文件,添加下面的内容:
|
|
其中$hexopath="C:\Users\xxx\Documents\GitHub\blog";
这一行需要修改路径为你的博客根目录,保存后需要重启powershell才能生效。
到这里,我们就可以在powershell
中输入pushehxo
实现一键备份和部署了。
6 总结
用Github Action
实现自动部署,不仅可以简化部署流程,还可以免去本地渲染的机器性能开销。在文章数量越来越多的时候(几百或者几千),hexo渲染就会越来越慢,甚至卡死,利用Github Actions
的话,本地只需要负责io传输就行了,渲染由github完成。
版权声明 本博客使用CC BY-NC-SA 4.0许可协议(创意共享4.0:保留署名-非商业性使用-相同方式共享)。