0%

【Hexo】CI/CD——持续集成&持续部署

这里不讲 CI/CD 的概念,我们想要做到的,就是自动化编译、部署博客,把注意力都集中在写作上。

之前已经讲过 《【Hexo】Git 一键部署》,但那仅仅是一键部署。在部署之前,还需要在本地安装 Nodejs 环境,安装依赖包,然后编译,最后才能开始部署。当然,Nodejs 环境和依赖一台机器上安装一次就够了,以后只需编译就行,但如果需要在多台机器上写作,那么每台机器都要装环境、装依赖……

也还行,还比较便利,但还不够。

我们可以借助 CI/CD 工具,完成环境搭建、编译、部署等一系列工作,真正做到一键上传博客。

说到这里,我想到了 WordPress。

WordPress 很容易就可以做到一键上传博客,完全不用搞什么 CI/CD。

免费的 CI/CD 工具不少,这里我选择了 Gihub Action。博客文章都是存储在 Github 库中,用 Gihub Action 也比较方便。

如下是工程文件,

https://github.com/vksir/blog-posts/blob/master/.github/workflows/main.yml

关于博客系统

WordPress 确实是好,但不太适合我:

  1. 文章都存储的 MySQL 数据库中。

    数据库很可靠,但是我的服务器并不可靠。服务器是租的,上面的数据我并不是很放心。比起个人服务器,我更愿意把数据存储在 Github 这种地方。

  2. 性能消耗大。

    WordPress 需要 MySQL、PHP 支撑,光跑这俩个组件就要占用大量内存,1H2G 的服务器有点难吃下。

Hexo 也挺好的,但也有问题:

  1. 很简单,也很复杂。

    简单指的是很容易就能生成博客页面,复杂是指,如果想要做到 WordPress 那样便利,其实很麻烦,要装一堆插件,配置一堆东西,完了还没有 WordPress 好用。

  2. 二次开发也不容易。

    博客主题经常就会有变更需求,只能硬写 Html、CSS、JS,着实是有点难为我这个后端开发者。如果能用用 React 之类的框架,那还简单点。

最好就是自己动手写博客,想怎么样就怎么样。框架好说,数据也好说,难的是主题。从零开始写 CSS,简直魔鬼……