使用GitLab-Ci自动部署Hexo到GitHub Pages
使用GitLab Ci 自动部署Hexo到GitHub
也许这个操作有点傻(sao),为啥有GitLab Pages了,还要在GitHub 上搭建Hexo呢?好吧,不管那么多了,反正就是可以。
前言
GitHub 提供pages 功能,具体参见 What is GitHub Pages?,可以让你搭建自己的网站,当然只能是静态的。但是可以利用第三方博客框架自动生成静态网站。Hexo就是其中一个,至于如何使用,网上搜索一大堆,这里不赘述。
但是Hexo是基于NodeJs的,那么问题来了,每次写完文章,都需要Hexo g编译一次,还要上传编译好的文件到GitHub上面,这就限制了随时随地写文章的冲动。
Gitlab是个好东西,不但提供了Private Repository, 还提供了GitLab CI持续集成部署环境。
思路
随时随地任意终端写MarkDown文章 –> 到GitLab的“_posts”目录添加文件 –> 自动触发GitLab CI Pipeline –> 自动编译并部署到GitHub
实现
首先在GitHub上面创建一个repo,开启Pages
在GitLab上面创建一个Private的repo用来放博客的源代码
在GitLab添加一个SSH Private Key 文件,用于push到GitHub
在GitLab上添加 .gitlab-ci.yml 文件用户自动部署
准备就绪,下面是.gitlab-ci.yml的具体内容:
1 | variables: |
注解一下:
1 | cctgrsa 文件是 GitHub 的private ssh key,push操作的时候会用到,由于我们放在GitLab的private 项目里面,所以不用担心被人看到 |
使用GitLab-Ci自动部署Hexo到GitHub Pages