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 国内加速服务,可以用来修改主题默认字体