Github Action 自动部署Hexo
我个人搭建博客已经有走过了很长的一段路程了,从之前的博客园 -> WordPress -> 自主建站 -> 到现在的 Github Page,从原来的喜欢折腾,到现在的不想做任何维护,心态也发生了很大的变化,现在只想找一个什么都不管,就专心写博文的平台,在 17 年接触到了 Hexo,那个时候发现这个 nodejs 实现的博客框架真的很不错,生成页面的速度很快,也提供了 ejs 构建自己的渲染主题,而且搭配 github page,让我感受到了前所未有的清爽,轻量,迅速,现代化的 UI,各种插件(评论插件,访问量插件,随便举几个例子),一瞬间就俘获了我,但是每次都得 generate 和 deploy 太麻烦了,于是在 github action 推出的时候,我也第一时间把这些繁琐的事情 CI/CD 化了,接下来就介绍一下如何配合 github action 实现懒人之道。
1.项目背景
| 项目 | 介绍 | 可见性 |
|---|---|---|
| lingme.github.io | github page 仓库,用于存放 hexo 生成的静态站点文件 | public |
| lingme.github.io.repository | hexo 源文件仓库 | private |
2.部署密钥生成
hexo 编译后需要 push 到 lingme.github.io 上,需要用 ssh-keygen 命令生成一组私钥(没有后缀名)和公钥(.pub 结尾)
- 我们打开终端,输入 ssh 命令生成一组密钥
ssh-keygen -f github-deploy-key
- 打开 lingme.github.io 仓库,点击 setting / deploy key ,然后点击 add new key,使用
pbcopy < github-deploy-key.pub
命令将 key value 拷贝到剪切板,然后复制到 add new key 的输入框中,名称可以填写 HEXO_DEPLOY_PUB ,记住一定要勾选 allow write
- 打开 lingme.github.io.repository 仓库,点击 setting / secrets / add new key,使用
pbcopy < github-deploy-key
命令将 key value 拷贝到剪切板,然后复制到输入框中,名称可以取名为 HEXO_DEPLOY_PRI
3.创建 github action workflow
点击 lingme.github.io.repository 的 action 按钮,然后输入如下内容:
1 | name: HEXO CI |
记住要在自己的 hexo _config.yml 里头配置自己的部署地址:
1 | deploy: |
中间可以加一些中间过程,比如我的 workflow 步骤中有一个步骤叫做 Import custom extension style ,他会运行一个 shell 脚本,帮我做一些博客样式上面的调整,如果你绑定了域名,请把 CNAME 文件放到 hexo 源文件的 source 文件夹中,这样 generate 的时候才会一起打包。
然后可以在 source/_posts 中写一个 md 博文,并且 push 到服务器上面测试了。
我们登陆 github ,看到 action 已经在跑自动化流水线了

等一分钟左右,喝杯茶,我们发现 hexo 已经被自动化部署好了,访问一下域名看成果把

