Hexo on air! 持续集成,托管与 CDN 加速
这篇博客将承接上一篇精简部署,快速走一遍 Github Pages 托管后,着重介绍 通过 Github Actions 进行持续集成,Vercel、Netlify、Cloudflare Pages 等托管平台,以及 CDN 加速的配置。
Deploy to Github Pages
关于 Github Pages 的部署,可以参考 Hexo 官方文档。
网上的教程也很多,这里直接给出一个简单的配置。
1 | # _config.yml |
CI by Github Actions
我们可以通过 Github Actions 来实现持续集成。
这种方式的好处是,我们可以在本地写好博客,然后通过 Github Actions 自动部署到 Github Pages 上。
因此,你不需要担心在不同的电脑上写博客的问题,只需要将博客的源码推送到 Github 上,Github Actions 就会自动部署。
毕竟,每次手动配 npm 环境,然后 hexo d
也是挺麻烦的。
配置 Github Actions
Github Actions 是 Github 提供的持续集成(CI/CD, Continuous Integration/Continuous Delivery)服务。
我们可以通俗的理解为,Github Actions 可以在我们推送代码到 Github 仓库时,自动配置 Hexo 环境,生成网站,然后部署到 Github Pages 上。
你需要在 Github 上新建一个仓库,来存储你的博客源码。
如果你很熟悉这些,你也完全可以在一个仓库中,用不同的分支来存储源码和部署后的静态文件。
让我们来看看配置文件的内容。
开头
1 | # .github/workflows/autodeploy.yml |
这里比较好理解,这个配置文件的名字叫 自动部署
,当有改动推送到 master 分支时,启动 Action。
环境配置与安装依赖
1 |
|
jobs
是 Actions 的核心,这里我们定义了一个 deploy
任务,平台为 ubuntu
的最新版本 ( latest )。
接下来,我们
- 调用了
actions/checkout@v4
来 check out 分支master
,并且递归的获取子模块。 - 调用了
actions/setup-node@v3
来安装最新版本的 Node.js - 执行 npm 的命令来安装 Hexo
在这里我们可以看到两点:
- 可以调用其他人写好的 Action,这里 acitons/checkout 和 actions/setup-node 都是 Github 官方提供的 Action。
- 可以通过
run
来直接执行命令,就像在终端里一样。
生成 Hexo
1 | - name: 缓存 Hexo |
在这一步,我们使用 npm install
来安装需要的 npm 包。
如果你不理解 缓存 Hexo
这一步,可以翻阅 缓存依赖项以加快工作流程 - Github 文档。
然后,就是熟悉的 hexo clean
和 hexo generate
了。
可以看到,这里我直接使用了 JamesIves 编写的 github-pages-deploy-action
当你使用这个 Action 时,你需要在仓库的
Settings
->Secrets
中添加一个名为DEPLOY_TOKEN
的 secret,这个 token 可以在 Github 的Settings
->Developer settings
->Personal access tokens
中生成。
请注意这楼里的 repository-name
和 branch
需要修改为你自己的仓库名和分支名。
当然,你也可以写一个自己的 Action,这里就不展开了。
Deploy to Vercel、Netlify、Cloudflare Pages
实际上,很不幸的是,这几个貌似都快被 GFW 墙了。
托管到更专业的平台是有好处的:
- 免费的 HTTPS 与 TLS 证书
- 更快的访问速度 (当然,这也取决于你的访问者在哪里)
- CDN 加速
- 添加自己的域名
- 搜索引擎抓取收录的概率更高
这里我们以 Netlify 为例,介绍一下部署的过程。
可惜, Vercel 被墙了
首先,我们需要注册一个 Netlify 账号。点击 这里 注册。
点击 New site from Git
,选择 Github,然后选择你的博客仓库。
接下来,你需要配置一些参数。
配置参数
Build command
这里我们需要填写 hexo generate
。
Publish directory
这里我们需要填写 public
。
Advanced build settings
这里我们需要填写
1 | npm install |
自己的域名
以下的操作需要你有一个自己的域名。
如何有一个自己的域名
你可以在:
等等平台购买域名。
Cloudflare 提供 DNS 解析
使用 Cloudflare 加速,这需要你有一个域名。