GitLab不仅仅只是代码托管的工具,它还集成了CI的功能,通过Gitlab CI Multi Runner工具可以更方便的搭建持续集成环境。
在安装好GitLab之后还需要再安装一个叫gitlab-ci-multi-runner的工具。
PS: 当然了肯定没有Jenkins那么强大,毕竟可用插件太多了。
安装gitlab-ci-multi-runner
官方多种安装方式
由于众所周知(墙)的原因,还是推荐Gitlab CI Multi Runner 清华镜像
gitlab-runner命令介绍
服务状态
安装好runner之后就可以使用gitlab-runner命令了,可通过# gitlab-runner help
查看命令帮助,
更多命令详情可以查阅官方文档
好了,让我们来先查看一下服务运行的状态。# gitlab-runner status
输出以下内容,说明服务运行正常了。gitlab-runner: Service is running!
还有也可以通过以下命令查看,不过我更喜欢短一点的命令,后面都只使用gitlab-runner了。# gitlab-ci-multi-runner status
注册一个runner
注册一个runner可以使用交互式和非交互式两种方式,默认使用交互式的。
输入以下命令就可以开始交互式注册了,在这之前请确保Gitlab上面已经新建有项目了。# gitlab-runner register
1 | Running in system-mode. |
查看runner配置信息
可通过以下命令进行查看# gitlab-runner list
1
2Listing configured runners ConfigFile=/etc/gitlab-runner/config.toml
spring-demo Executor=shell Token=387ed6c05fef248d2183f9f45b9cda URL=http://192.168.1.2/ci
也可以直接打开配置文件进行查看# vim /etc/gitlab-runner/config.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21concurrent = 1
check_interval = 0
[[runners]]
name = "spring-demo"
url = "http://192.168.1.2/ci"
token = "387ed6c05fef248d2183f9f45b9cda"
executor = "shell"
[runners.ssh]
[runners.docker]
tls_verify = false
image = ""
privileged = false
disable_cache = false
[runners.parallels]
base_name = ""
disable_snapshots = false
[runners.virtualbox]
base_name = ""
disable_snapshots = false
[runners.cache]
删除注册信息
如果发现register信息填写错误,或者不再使用了。可通过以下命令进行删除。
首先查看已注册过的信息
# gitlab-runner list
1
2Listing configured runners ConfigFile=/etc/gitlab-runner/config.toml
spring-demo Executor=shell Token=387ed6c05fef248d2183f9f45b9cda URL=http://192.168.1.2/ci开始删除
# gitlab-runner unregister --url http://192.168.1.2/ci --token 387ed6c05fef248d2183f9f45b9cda
其中–url参数可查看上面的URL=后面的值填写,–token参数就是上面的Token=后面的值,复制粘贴即可。1
2
3Running in system-mode.
Deleting runner... succeeded runner=387ed6c0
出现上面信息表示删除成功了。
注意:这个操作是不可逆的,为了防止出错可以先备份一下/etc/gitlab-runner/config.toml
配置文件
项目自动化构建配置
配置好了runner,想要开始自动构建还需要在项目根目录添加一个.gitlab-ci.yaml文件。
关于.gitlab-ci.yaml文件的配置说明可参考官方文档。
下面贴一下我做测试Demo时使用的,不要笑,很简单只做演示用的。。
.gitlab-ci.yaml1
2
3
4
5
6
7
8
9stages:
- build
- deploy
job1:
stage: build
script: "mvn package"
job2:
stage: deploy
script: "mvn tomcat:redeploy -Dmaven.test.skip=truey -e -X"
总结
到这里关于CI持续集成的差不多就说那么多了,当然了还有很多都没说到,这就要看实际的项目需求进行相应的配置了。
总的来说呢,gitlab-runner虽然跟Gitlab集成的比较好,但是功能方面还是有点不如老牌的Jenkins。
不过它对Docker倒是支持的蛮好的,说起来我接触Docker也是挺早的了,它2013年开源,我2014年就开始接触了,并且2015年也在公司服务器上实际部署了,后面有时间再写点关于Docker的吧。不过跳槽后就用的少了,但愿别都忘了好:)。