前言
本文将介绍利用 Github Actions 实现自动部署 hexo 到 Github Pages,在之前我们需要写完文章执行 hexo generate --deploy
来部署,当你文章比较多的时候,可能还需要等待很久,而且还可能会遇到本地安装的 Node.js 版本与 Hexo 不兼容的问题,目前我就是因为电脑的 Node.js 版本升到 v14 版本导致与 Hexo 不兼容部署不了,才来捣腾 Github Actions 功能的。利用 Github Actions 你将会没有这些烦恼。
Github Actions 可以很方便实现 CI/CD 工作流,类似 Travis 的用法,来帮我们完成一些工作,比如实现自动化测试、打包、部署等操作。当我们运行 Jobs 时,它会创建一个容器 (runner),容器支持:Ubuntu、Windows 和 MacOS 等系统,在容器中我们可以安装软件,利用安装的软件帮我们处理一些数据,然后把处理好的数据推送到某个地方。
前提
创建所需仓库
- 创建
blog
仓库用来存放 Hexo 项目 - 创建
your.github.io
仓库用来存放静态博客页面
生成部署密钥
一路按回车直到生成成功
$ ssh-keygen -f github-deploy-key
当前目录下会有 github-deploy-key
和 github-deploy-key.pub
两个文件。
配置部署密钥
复制 github-deploy-key
文件内容,在 blog
仓库 Settings -> Secrets -> Add a new secret
页面上添加。
- 在
Name
输入框填写HEXO_DEPLOY_PRI
。 - 在
Value
输入框填写github-deploy-key
文件内容。
复制 github-deploy-key.pub
文件内容,在 your.github.io
仓库 Settings -> Deploy keys -> Add deploy key
页面上添加。
- 在
Title
输入框填写HEXO_DEPLOY_PUB
。 - 在
Key
输入框填写github-deploy-key.pub
文件内容。 - 勾选
Allow write access
选项。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bhWWRBTy-1636956889833)(https:\cdn.jsdelivr.net\gh\VivianWestwood\image01\img\202108281722804.png)]
编写 Github Actions
Workflow 模版
在 blog
仓库根目录下创建 .github/workflows/deploy.yml
文件,目录结构如下。
blog (repository)
└── .github
└── workflows
└── deploy.yml
在 deploy.yml
文件中粘贴以下内容。
name: CI
on:
push:
branches:
- master
env