Hexo 博客自动化部署
使用 Github Actions 自动化部署 Hexo 博客
2023.07.29 更新: 不使用原来的
Personal access tokens (classic),改用新版的Fine-grained personal access tokens
环境信息:
1 | hexo: 6.3.0 |
前期准备
首先最基本的:
- 会用 Git 以及 Github (废话)
- 会用 Hexo 搭建博客 🤔
1. Github 创建仓库
Github 创建两个仓库:
- 一个 Public 仓库
- 用于存放build后的博客静态网页
- 名称随意
- 注意如果使用
用户名.github.io为仓库名可以无需加仓库名路径访问 - 如果仓库名为
blog, 则需要通过用户名.github.io/blog访问 - 这里以
ex7l0it.github.io为例
- 注意如果使用
- 一个 Private 仓库
- 用来存放文章源码
- 名称随意,以
blog-source为例
实现目标是更新 Private 仓库数据时会使用 Github Actions 自动 build 博客内容并部署到指定的 Public 仓库中
2. 创建 Github Token
- 如何创建?
- 答: 看官方文档
- 创建一个 Token, 用新的细粒度的
Fine-grained personal access tokens Token name内容随意, 自己知道用于自动化部署博客即可Select scopes 部分选择repo和workflow权限- Repository access 选中
Only select repositories,选择公开仓库ex7l0it.github.io- 仓库权限中给
Actions、Contents、Pages分配Read and write权限就够 - 无需账号权限
- 仓库权限中给
- 注意
- Token 创建完成后只显示一次, 及时复制
- Token 有过期时间, 过期之后记得再次更新(当然这是后话)
3. 为 Private 仓库创建 secrets
- 如何创建?
- 答: 还是看官方文档
- Name 还是随意, 这里以
DEPLOY_TOKEN为例 - Secret 内容填写上一步生成的 Token
4. 创建 Github Actions 配置文件
- 在 hexo 项目根目录的
.github文件夹下创建一个名为workflows的文件夹 - 在刚刚创建的
workflows文件夹下创建一个.yml类型文件,名称随意,这里以deploy.yml为例 deploy.yml内容大致如下:
1 | name: Hexo Deploy GitHub Pages |
这里使用的是 theme-keep 团队创建的 https://github.com/theme-keep/hexo-deploy-github-pages-action 仓库中的内容,Hexo博客通用, 不局限主题 👍🏻👍🏻👍🏻
杂七杂八的话
- 现在 Github 默认分支改成了main, 本人还是习惯用 master(可以在Github设置中更改默认分支名称)
- 如果需要将本地的 main 分支改名为 master 分支, 执行
git branch -m main master即可
5. 完成
- 将 hexo 项目 push 到 Private 仓库即可触发自动化部署,可以在仓库的 Actions 页面看到 Workflows 的工作状态
- Public 仓库中通过 Github Pages 访问即可
6. 其他的好东西
- 扒拉半天才找到的能用的 前端 CDNJS 库及 Google Fonts、Ajax 和 Gravatar 国内加速服务,可以用来修改主题默认字体