github actions托管gitee pages

问题来源

自从全球最大的同性交友网站–github被墙了之后,加之国内访问速度慢,把hexo静态网站托管到gitee就成了不二之选。问题是,gitee pages不支持自动更新,需要开通pro版本才行,花这钱就跟花钱开百度网盘会员一样不情愿,怎么办呢?—-github actions。

解决步骤

使用github actions可以参考这个开源项目

现在问题换到hexo身上,在我们对post文件进行修改之后,一般需要执行hexo c清理缓存(不是必须),hexo ghexo d。在使用github actions的时候,需要在根目录添加文件.github/workflows/test.yml来定制actions的流程,但是在执行hexo d的时候,会将这个文件删掉,导致actions失效。我们的问题就是怎么保证.github文件夹一定存在于根目录。而根目录是hexo 托管的,我的解决办法是这样的:

  • 把.github文件夹复制到hexo根目录的.deploy_git

    如果不添加进来,你会发现,即使你把.github文件夹放到public下,执行deploy命令,hexo也不会托管他。添加进来就可以保证,只要public存在这个文件夹,就可以deploy到远程的master上。

  • 写脚本一键更新

    hexo的流程是这样的,执行hexo clean,会把整个public文件夹删除。然后执行hexo g,会渲染source文件夹里面的md文件成html页面,也就是我们在blog看到的页面。执行hexo d,更新到github。

    所以我们的脚本顺序是这样的:

    • 进入到hexo根目录

    • 执行hexo clean命令

    • 执行hexo g命令

    • 复制根目录的.github文件夹到public内。

      这里需要我们提前把.github文件夹复制到根目录,放到这里是不会消失的。

    • 执行hexo deploy命令

    • 完事

所以最后我们更新博客的流程是这样的,双击bat文件,完事。

这里是我的bat文件,仅供参考:

CMD.bat

1
cmd /k "cd /d D:\development\myblog&&hexo clean &&hexo g && xcopy D:\development\myblog\.github D:\development\myblog\public\.github\ /e && hexo d"

最后你会发现:

image-20210326153932457

爽呆!!!!

  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.

请我喝杯咖啡吧~

支付宝
微信