0%

gitlab pages jekyll 自动部署

本篇简单的介绍一下如何使用gitlab搭建jekyll静态blog。感兴趣的可以看看。

这里使用的是当前 blog 模板,各位可以做个参考。

使用到的工具

  • ruby
  • gccg++make(部分包需要本地编译)
  • bundler
  • jekyll

为了编译的速度以及节省时间,我使用了 node:10-alpinedocker镜像。

在开始的时候,我们需要将一些必需文件进行安装。

为了安装速度,我们可以选择使用国内源,比如淘宝源码 改用清华大学源靠谱

Ruby修改国内源方式为在Gemfile文件头部增加清华源地址:

1
2
# source 'https://rubygems.org'
source 'https://mirrors.tuna.tsinghua.edu.cn/rubygems/'

apk 包管理同样使用清华源修改源方式为:

1
sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories

(我们可以将该命令放置在CI文件里)

.gitlab-ci.yml

CI 文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
image: node:10-alpine # use nodejs v10 LTS
cache:
key: ${CI_COMMIT_REF_NAME}
paths:
- node_modules/

before_script:
- sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories
- apk add ruby ruby-dev openssl-dev gcc g++ make zlib-dev git
- gem install bundler

pages:
script:
- bundle install
- bundle exec jekyll build
- mv _site public
# - bundle exec htmlproofer ./_site --check-html
artifacts:
paths:
- public
only:
- master

为了成功编译出静态blog,我们先在before_script进行必要的一些工具的安装。

pages 项目里,artifacts.paths_site为当前项目生成的静态blog目录,部分模板生成目录为public。请根据实际情况进行修改。

pages 项目里,artifacts.pathspublic为当前项目生成的静态blog目录,必须为 public

参考链接

  • 将 Hexo 部署到 GitLab Pages
  • 清华镜像源地址:https://mirrors.tuna.tsinghua.edu.cn