从代码到线上,高度集成的gitlab工具链(三): Gitpage

概述

就像github一样,gitlab一样提供了托管静态站点的能力,结合GitLab CI的力量和GitLab Runner的帮助,你可以为你的单独项目、用户或组部署静态页面。

开启Gitlab page

你需要一个域名解析或者让组员们自己改hosts,当然,多个静态站要添加很多条记录,而自己搭建个name服务器支持泛域名解析可能是更加科学的办法。

泛域名配置

  • 修改/etc/gitlab/gitlab.rb文件

    1
    pages_external_url 'http://example.io'
  • 拉起gitlab配置

    1
    sudo gitlab-ctl reconfigure

创建一个page项目

首先,要知道名称是跟着用户名或者组名走的,如下图
Commit

然后写咱们的.gitlab-ci.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# requiring the environment of NodeJS 10
image: node:10

# add 'node_modules' to cache for speeding up builds
cache:
paths:
- node_modules/ # Node modules and dependencies

before_script:
- npm install gitbook-cli -g # install gitbook
- gitbook fetch 3.2.3 # fetch final stable version
- gitbook install # add any requested plugins in book.json

test:
stage: test
script:
- gitbook build . public # build to public path
only:
- branches # this job will affect every branch except 'master'
except:
- master

# the 'pages' job will deploy and build your site to the 'public' path
pages:
stage: deploy
script:
- gitbook build . public # build to public path
artifacts:
paths:
- public
expire_in: 1 week
only:
- master # this job will affect only the 'master' branch

添加目录文件SUMMARY.md

1
2
3
# Summary

* [Introduction](README.md)

添加内容文件README.md

1
## hello gitpage

这里使用gitbook来作为page范例,更多可参考Gitlab page examples

等待pipeline

在提交以上内容后,gitlab会根据ci文件内定义的job开始pipeline(需要创建gitlab runner, 创建与注册runner在从代码到线上,高度集成的gitlab工具链(一): CI/CD),在等待job完成后咱们就可以在对应的web地址访问了。