使用私有gitlab搭建gitbook持续集成

gitbook是一套文档/书籍很好的解决方案,我这里用他来发布团队的一些公有规范。gitlab是我们在用的一套git私仓。以下是具体的操作步骤。

安装node.js

1
2
3
4
5
6
wget https://nodejs.org/dist/latest-v6.x/node-v6.12.3.tar.gz
tar -xf node-v6.12.3.tar.gz
cd node-v6.12.3
./configure
sudo make
sudo make install

安装gitbook-cli

1
sudo npm install -g gitbook-cli

创建git project 并注册cli

直接在gitlab中创建一个project,然后进入project的settings界面CI/CD settings下的Runners settings界面找到注册令牌。如果没安装过gitlab runner,还需要先安装gitlab runner,可以参照我之前的一篇文章中的第三步,第四步。然后为该project注册cli

1
sudo gitlab-runner register

这里需要注意的是最好允许其他tags触发,允许其他项目使用。

编写ci脚本

在项目根目录下创建.gitlab-ci.yml,填入以下内容

1
2
3
4
5
6
gitbook:
stage: build
script:
- pwd
- gitbook init
- gitbook build

这时提交文件到项目中,就会触发执行script所定命令。

启动gitbook

在gitlab该项目的piplines中,我们找到gitbook的输出目录,即pwd命令所打印的目录,如/home/gitlab-runner/builds/00bbd75f/0/book/overview。登录centos后使用gitlab-runner用户,切换到上述路径后,执行:

1
nohup gitbook serve --port 15016 &

即完成了gitbook的启动(端口自己指定,默认4000),而且当gitbook发生变动后,他会自动发布变动。

END