使用 Github Action 自动部署 Hexo 博客
获取 Token
为了确保交由Github Action
来持续部署时,Github Action
具备足够的权限来进行 hexo deploy
操作,需要先获取 Token
。
访问 Github
–> 右上角头像 –> Settings
–> Developer Settings
–> Personal access tokens
–> Tokens (classic)
–> generate new token
–> Generate new token (classic)
Note
(名称):随意;Expiration
:No expiration
(永不过期);Select scopes
:必须勾选repo
项 和workflows
项。
token
只会显示这一次,之后将无法查看,所以务必保证你已经记录下了 Token
。之后如果忘记了就只能重新生成重新配置了。
创建存放源码的私有仓库
我们需要创建一个用来存放 Hexo
博客源码的私有仓库[SourceRepo]
访问 Github
–> 右上角头像左侧 +
号 –> New repository
,名称随意,类型选择 Private
–> Create repository
。
创建完成后,需要把博客的源码[Blogroot] push
到这里。
这里之所以是私有仓库,是因为在接下来的配置中会用到 Token
,如果 Token
被盗用,别人可以肆意操作你的 github
仓库内容,为了避免这一风险,才选择的博客源码闭源。
创建存放渲染后文件的公开仓库
访问 Github
–> 右上角头像左侧 +
号 –> New repository
,名称随意,类型选择 Public
–> Create repository
。
配置 Github Action
在[Blogroot]
新建.github
文件夹,注意开头是有个.
的。然后在.github
内新建 workflows
文件夹,再在 workflows
文件夹内新建 autodeploy.yml
,在[Blogroot]/.github/workflows/autodeploy.yml
里面输入
1 | name: 自动部署 |
推动到远程仓库
若更改过配置文件,在推送之前,建议先本地生成静态文件试运行,防止因代码格式等问题自动部署失败。
同时在自动部署 –> 生成静态文件出错也可以同理反查问题源。
重新设置远程仓库和分支
删除或者先把[Blogroot]/themes/butterfly/.git
移动到非博客文件夹目录下,原因是主题文件夹下的.git
文件夹的存在会导致其被识别成子项目,从而无法被上传到源码仓库。
在博客根目录[Blogroot]
路径下运行指令
1 | git init #初始化 |
添加屏蔽项
因为能够使用指令进行安装的内容不包括在需要提交的源码内,所有我们需要将这些内容添加到屏蔽项,表示不上传到 github
上。这样可以显著减少需要提交的文件量和加快提交速度。打开[Blogroot]/.gitignore
,输入以下内容:
1 | .DS_Store |
如果不是butterfly
主题,记得替换最后一行内容为你自己当前使用的主题。
运行 git
提交指令,将博客源码提交到 github
源码私有仓库。
1 | git add . |
查看部署情况
打开 GIthub
存放源码的私有仓库 –> action
。
根据刚刚的 Commit
记录找到相应的任务
点击 Deploy
查看部署情况
全部打钩,完成自动部署。
参考链接
- 安知鱼: 使用 Github Action 自动部署
- Akilar の糖果屋: 使用Github Action实现全自动部署