近期我的电脑坏了,拿出去维修,而我的新电脑上原来的环境都没了,包括 Hexo 博客本地环境。所以就想着要搭建一个可以自动部署的博客环境,省去我来回迁移博客的烦恼。
在网上搜索了一番之后决定使用 GitHub Actions 来部署博客。
GitHub 仓库准备
我们可以把 Hexo 博客分为两类,一类是源文件:
1 | . |
一类是通过 hexo -g
生成的静态网站文件:
1 | public |
要通过 GitHub 来自动部署博客,我们需要准备两个仓库。
- 私有仓库 blog:用来存放源码文件
- 博客仓库 *.github.io:存放生成的博客站点静态文件
博客仓库这个,相信很多朋友已经有了,所以只需要建立一个私有仓库即可。
博客配置
申请完仓库之后,我们需要做一些配置。
- 首先在本地生成一对密钥文件,例如:
1 | 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
选项
编写 workflow
这里我们直接使用别人编写好的 workflow 即可。https://github.com/DeppWang/hexo-action
我把示例贴在下面。
另外这个 GitHub 里面的内容最好认真读一下,按照自己的实际情况来修改一下。
1 | name: Deploy |
这里需要注意要修改几个变量:
${{ secrets.DEPLOY_KEY }}
:改成你自己部署的时候起的名字- user_name: your github username 和 user_email: your github useremail:配置成你自己的名字和地址即可
然后将这些项目 push 到博客即可。
最终提交的可能是这些内容:
1 | ├── .github |
这样,我们就将文章 push 到 GitHub 上之后,就可以自动部署了。