写前哔哔
老早就看到别人用Github Actions来实现Hexo自动化部署,但是看见一长串教程就退缩了,正好趁着休假抄一下店长的作业。
Hexo自动化部署 By Github Actions
想当初挡住我的第一步就是上传仓库,各种git搞得我眼花缭乱,后来才知道Github官方还有个图形化应用程序Github Desktop可以极大简化操作:
- 首先在本地电脑上新创建一个用于存放博客源码的文件夹(我的文件夹名是
blog_source),然后将博客根目录(我的是blog)下的所有文件复制粘贴到blog_source中。 - 打开
[Blogroot]/.gitignore,输入以下内容:
1 | .DS_Store |
最好把butterfly目录下的.git文件夹删除,这是因为[Blogroot]/themes/butterfly 本身是一个独立的 Git 仓库(里面包含 .git 文件夹),所以 Git 会把它识别为 “嵌入式仓库”,而不是普通文件目录,直接 git add 无法正常跟踪其内容。
- 在
[Blogroot]新建.github文件夹,注意开头是有个.的。然后在.github内新建workflows文件夹,再在workflows文件夹内新建autodeploy.yml,在[Blogroot]/.github/workflows/autodeploy.yml里面输入:
1 |
|
需要注意的主要有三点:
一是要保证uses: actions/cache@v4,因为GitHub Actions 工作流中使用了已被废弃的 actions/cache@v1 版本,GitHub 已不再支持该版本,需要更新到 v3 或 v4 版本。
二是如果新仓库,那么分支应该都是main,但是最后一行的分支为master:main,而不是main:main。
三是如果博客部署的仓库不是Github Pages所在的仓库的话,如仓库名.github.io,那么最后一行应该修改为git push --force --quiet "https://${{ secrets.GITHUBUSERNAME }}:secrets.GITHUBUSERNAME:${{ secrets.GITHUBTOKEN }}@github.com/${{ secrets.GITHUBUSERNAME }}/仓库名.git" master:main
- 参照以下视频利用Github Desktop上传博客源码至Github仓库:
- 参照店长教程添加相关环境变量并查看部署情况:
在之前一篇教程中实现了在本地端用Hexo 的deployAfter钩子触发EdgeOne自动化刷新,但这种方法貌似在Actions中不起作用,于是大法启动。
- 在
scripts文件夹中新建edgeone-cache-actions.js,然后复制粘贴以下代码:
1 | const tencentcloud = require("tencentcloud-sdk-nodejs-teo"); |
- 在
autodeploy.yml中添加以下代码:
1 | - name: 刷新EdgeOne缓存 |
-
然后再在仓库的
Settings > Secrets and variables > Actions中添加以下密钥:-
EDGEONE_SECRET_ID:腾讯云 API 密钥 ID -
EDGEONE_SECRET_KEY:腾讯云 API 密钥 Key -
EDGEONE_ZONE_ID:EdgeOne 的站点 ZoneID
-
具体获取方法见:
- 最后在Actions处查看
deploy流程,如果显示以下内容说明EdegeOne缓存刷新成功:
最后叨叨
个人纯小白,全程豆包编码,仅做个人成功案例分享,大佬勿喷。



















