github actions 实现 hexo 自动化部署
前言
使用 github pages 托管个人博客网站,使用双分支来保存博客源文件,使用 git submodule 来管理更新主题文件,使用 github actions 来做持续集成。
hexo 持续集成
双分支
- hexo 分支。添加文章,修改文章基于该分支。
- master分支,deploy到线上的分支,该分支存放的是最后generate的文件。在github pages中设置master分支。
生成公钥私钥
这一步主要是为了 CI 中提交代码,生成了两个文件,公钥文件 github-deploy-key.pub,私钥文件 github-deploy-key。需要注意,如果你是在博客目录执行的命令,需要在 .gitignore 中加入这两个文件,避免上传到仓库中。
1 | ssh-keygen -t rsa -C "$(git config user.name)" -f github-deploy-key |
添加仓库环境变量
设置 HEXO_DEPLOY_PUB,value 是上步生成的 github-deploy-key.pub 文件内容。
设置 HEXO_DEPLOY_PRI, action中添加secret, value是github-deploy-key文件内容
添加 workflow
编写 workflow,新建的时候会有对应的注释提示你该如何写。需要注意的是 submodule 不会自动下载,需要添加 check submodules 这一步。
1 | name: CI |
测试持续集成
本地 hexo 分支提交代码即可,部署站点会由 github actions 自动完成。可以去仓库 actions 设置中查看执行完成的 flow。如果有错,点开查看错误的 step 修改即可。