使用Gitlab Pages建立个人博客

2016-12-12 Meng Lei 更多博文 » 博客 » GitHub »

备忘 GIT GitLab

原文链接 http://menglei.tk/2016/12/12/gitlab-pages/
注:以下为加速网络访问所做的原文缓存,经过重新格式化,可能存在格式方面的问题,或偶有遗漏信息,请以原文为准。


关于Gitlab Pages

与Github Pages相似,Gitlab Pages也是一个用来托管静态文件的服务,由Gitlab提供,通过与Gitlab CI和Gitlab Runner集成,将用户个人、组织以及项目的页面部署到静态文件服务当中。

Gitlab Pages是从Gitlab EE 8.3版本才引入的,自定义CNAME和TLS支持是从Gitlab EE 8.5版本中引入的,由于我们没有Gitlab EE 环境,此处我们使用Gitlab.com提供免费服务。

开始使用Gitlab Pages

通常来说,有两种类型的pages

  • 用户页面(username.exmaple.io)或者组织页面(groupname.exmaple.io)
  • 项目页面(username.exmaple.io/projectname)或者(groupname.exmaple.io/projectname)

在一个Gitlab实例中,用户名或者组织名是唯一的,所以我们可以将其当作命名空间使用,下面表格展示了不同类型的Gitlab Pages与他们的项目名称的关系以及最终URL的展现形式:

Gitlab Pages类型 Gitlab中的项目名称 网站URL
用户页面 username.exmaple.io http(s)://username.exmaple.io
组织页面 groupname.exmaple.io http(s)://groupname.exmaple.io
用户项目页面 projectname http(s)://username.exmaple.io/projectname
组织项目页面 projectname http(s)://groupname.exmaple.io/projectname

使用Gitlab Pages的基本流程

简单的说,使用Gitlab Pages 需要以下几步:

  • 从管理员处得到Gitlab Pages的域名(gitlab.com的对应域名为gitlab.io),这一步非常重要,所以您必须确保首先获得正确的域名。
  • 创建一个项目。
  • 向该工程根目录中推送一个.gitlab-ci.yml文件。
  • 建立一个Gitlab Runner用来构建您的服务。

搭建个人博客

下面要在Gitlab.com上搭建免费的个人博客,由于我的用户名是mlei,所以建立一个工程,名为mlei.gitlab.io。并将此工程克隆至本地。

将github pages工程的hexo分支内源码复制到该工程目录下,然后新建一个.gitlab-ci.yml文件,其内容如下:

image: node:4.2.2

pages:
  cache:
    paths:
    - node_modules/

  script:
  - npm install hexo-cli -g
  - npm install
  - hexo generate
  artifacts:
    paths:
    - public
  only:
  - master

提交所有更改,然后将代码库push到远程,Gitlab会自动识别.gitlab-ci.yml中的配置并执行其中的操作,执行完毕后,访问http://mlei.gitlab.io即可访问我的博客。

同步Github Pages内容

每次提交Github Pages之后都要将博客源代码文件复制到Gitlab Pages的工程下面,然后再提交,显然这种重复的体力劳动是不需要人力去完成的,我们可以在travis CI中设置相应的操作,让其自动将代码提交至Gitlab版本库中,但是Gitlab提供了一个更加简便快捷的方法:镜像版本库(Mirror repository)。

点击工程的设置按钮,找到Mirror Repository菜单栏,点击进入,一共提供了两种选择,一共是将该版本库当作其他项目的镜像,每小时同步一次内容,另一种是将该版本库当作主版本库,每次提交之后,将其内容同步至其他版本库,我们此处用的是前者。

只要将Mirror repository的复选框勾选,然后填入我的Github pages的地址,确认即可,此时,自动同步功能已经开启。