GitHub Actions自动部署Hexo博客
以前使用 Travis CI 自动部署Hexo博客,但是,Travis CI 免费账户的速度不算太快。这次,使用 Github 自带的Actions功能,实现自动部署。实测后部署速度的确更快。
GitHub Actions 由 GitHub 官方推出的工作流工具。典型的应用场景应该是 CI/CD,类似 Travis 的用法。
项目背景
我的博客源码和静态文件存放在一个 github 项目中的两个独立分支。
分支 | 说明 |
---|---|
hexo | 原始数据及配置 |
master | 静态页面 |
项目设置
生成密钥对
1 | ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -N "" -f deploy_key |
会生成 deploy_key
私钥 和 deploy_key.pub
公钥两个文件。
添加公钥
项目页 --> Settings
--> Deploy keys
--> Add deploy key
将deploy_key.pub
公钥内容复制上去,勾选:Allow write access
添加加密环境变量
项目页 --> Settings
--> Secrets
--> Add a new secret
环境变量名可以任意命名,但要和Actions里的设定$对应
环境变量 | 说明 |
---|---|
DEPLOY_KEY | 发布key 私钥,deploy_key 私钥文件内容 |
发布用户邮箱账号 | |
NAME | 发布用户名 |
修改_config.yml
1 | # Deployment |
repo
链接必须使用 ssh 格式
编写 Action 脚本
此处使用成熟方案
在根目录下创建 GitHub Actions workflow
文件,.github/workflows/hexo.yml
1 | name: Hexo CICD |
注意:
- 根目录下
.gitignore
中需要移除package-lock.json
- 静态页面是强制推送,覆盖历史数据
小结
GitHub Actions
将自动监视hexo
分支,并对任何除带[ci skip]
的 push 触发执行。