使用 GitHub Action 自动部署 Hexo
Github Actions 是Github官方推出的 CI/CD 工具,通过它,可以在每次提交代码时,自动编译并部署到 Github Pages。这样就不用每次写好博客时,手工部署到服务器上。
Github Actions 针对公开仓库永久免费。当然,像博客这样的数据我们一般都是放在私有仓库里的,Github Actions 同样提供每月至少 2000 分钟的运行时长,这个时间对于博客的自动部署是足够了。
生成Github Personal access token
在 Settings -> Developer settings -> Personal access tokens 中,点击 Generate new token
,我们可以生成 token。在生成 token 时,我们要注意勾选上repo
权限。需要注意的是,这里生成的token在关闭网页后就没法再次查看了,所以这里一定要保存好,在下一步中我们会用到这个 token。
设置仓库
我们在这里用的是双仓库的形式,即仓库 A 存放 Hexo 源文件,仓库 B (xxx.github.io) 存放生成的部署文件。对仓库 A 进行 push 之后,会自动更新部署仓库 B。
我们需要在仓库 A 中的 Settings -> Secrets -> Add a new secret 中添加我们刚刚生成的 token,名称 为GITHUB_ACCESS_TOKEN
。
配置 Hexo 的部署方式
修改 hexo 文件夹中的_config.yml
,将下面代码中的YOUR_GITHUB_USERNAME
和YOUR_GITHUB_REPO
修改为自己的内容。
1 |
|
配置 Github Actions
在 Hexo 根目录下新建.github/workflow/blogci.yml
文件,修改 YOUR_NAME
和YOUR_EMAIL
为自己的内容。
1 |
|
使用 FTP 进行部署
Hexo 的 FTP 部署方式会将远程服务器的文件夹清空后,再上传生成的文件。然而,在清空文件夹的步骤中会报错,因而转用 Github Actions 第三方市场中的 Action 进行部署。在blogci.yml
文件中添加以下代码,并在Secrets
中依次添加 FTP_SERVER
、FTP_USERNAME
、FTP_PASSWORD
。
最后将仓库推送至 Github ,就可以看到 GIthub Actions 会自动部署你的博客了。