github action
github action 是一个持续集成(Continuous intergration)和持续交付(Continuous deluvery)的平台,他可以做到自动化构建、测试、部署。
我们可以通过github action的逻辑自动化部署位于git-pages上的个人博客,省去频繁的个人同步的操作。
而且针对其他难以在个人电脑上进行编译的庞大宫成,也可以历史github action提供的runner进行编译。
接下来的内容是我通过github action进行自动化部署hexo个人blog的经验。
依赖准备
针对hexo,我们需要提供必要的md文件,剩余的内容可以通过hexo进行自动生成和部署,具体需要部署的内容是经过了hexo generate
之后生成public
文件夹。
将生成完成的public
文件夹同步到名为${user-name}.github.io
github工程的master分支后,github会自动将该内容发布到http://${user-name}.github.io
的网页上,方便进行查看。
仓库准备
因此,我们至少需要准备两个仓库(或者分支)。
- 存储
public
文件夹
- 使用
${user-name}.github.io
仓库的master
分支
- 存储md文件源代码和相关配置文件
- 可以使用任务仓库的任意分支
- 我这里使用的是
${user-name}.github.io
的source-files
分支
配置文件准备
配置文件主要分成网站配置文件和主题配置文件两部分。
- 网站配置文件
- 控制网站基本信息
- 主题配置文件
- 如果你安装了自己的主题的话,会处于
./themes/${theme-name}/
下,用来控制主题的相关配置
本地文件准备和同步
- 准备好本地文件。
具体的文件夹结构可以参考下图:
- 将准备好的文件同步到线上指定的仓库或分支里。
线上github-action的workflow编写
这里是整个部署过程的核心部分,在github-action的运行过程中,我们会集成和Hexo相关的操作,包括hexo clean
和hexo generate
和主题安装的过程。
目的就是为了将过去我们需要手动处理的流程,全部通过github-action进行自动化处理。