持续集成之jenkins实践教程:基础篇(2): 集成gitlab

这里写图片描述
做为持续集成的利器Jenkins已经获得了普遍地应用,仅仅做为一个工具,Jenkins已然有了本身的生态圈,支持其的plugin更是超过1300+。在实际中如何使用以及如何更好地使用jenkins,一直是你们在实践并讨论的。本系列文章将会从如何使用jenkins方面对一些细节进行总结和整理,这篇文章将会介绍如何在Jenkins中实现与gitlab的集成git

事前准备

只要有jenkins便可,没有的可使用Jenkins官方的镜像或者安装包,或者使用Easypack中封装的基本一致的Jenkins。web

docker pull镜像docker

[root@liumiaocn ~]# docker pull liumiaocn/jenkins
Using default tag: latest
latest: Pulling from liumiaocn/jenkins
Digest: sha256:87c954f71bc3ce1ba5d001bfbae501f9965368c16f0111ef951350376c2f6832
Status: Image is up to date for liumiaocn/jenkins:latest
[root@liumiaocn ~]#

启动Jenkins镜像
docker run -d -p 8090:8080 -p 50000:50000 –name jenkins liumiaocn/jenkinsapi

[root@liumiaocn ~]# docker run -d -p 8090:8080 -p 50000:50000 --name jenkins liumiaocn/jenkins
63dc2d52de03074858a6b61db4955345a66cfd436c5a47384924e9e3f8177778
[root@liumiaocn ~]#

plugin

与gitlab的集成也是经过插件来作的,须要安装GitLab Plugin插件,目前版本是1.4.6,经过使用这个插件进行集成可以使得gitlab在push以后可以调用jenkins进行构建。详细说明以下图所示
这里写图片描述ruby

安装

可使用jenkins的插件管理页面进行安装,也可使用其id(gitlab-plugin)在镜像中进行安装并重启镜像便可。在mailer中咱们也使用了jenkins官方所提供的install-plugins.sh,连同依赖关系一块儿安装给自定义jenkins会带来极大的方便。ssh

[root@liumiaocn ~]# docker exec -it jenkins sh
/ $ install-plugins.sh gitlab-plugin
Creating initial locks...
Analyzing war...
Downloading plugins...
Downloading plugin: gitlab-plugin from https://updates.jenkins.io/download/plugins/gitlab-plugin/latest/gitlab-plugin.hpi
 > gitlab-plugin depends on workflow-step-api:1.15,credentials:2.1.0,git:2.4.1,git-client:1.19.0,matrix-project:1.10,plain-credentials:1.1;resolution:=optional
Downloading plugin: workflow-step-api from https://updates.jenkins.io/download/plugins/workflow-step-api/latest/workflow-step-api.hpi
Downloading plugin: credentials from https://updates.jenkins.io/download/plugins/credentials/latest/credentials.hpi
Downloading plugin: git from https://updates.jenkins.io/download/plugins/git/latest/git.hpi
Downloading plugin: git-client from https://updates.jenkins.io/download/plugins/git-client/latest/git-client.hpi
Skipping optional dependency plain-credentials
Downloading plugin: matrix-project from https://updates.jenkins.io/download/plugins/matrix-project/latest/matrix-project.hpi
 > workflow-step-api depends on structs:1.5
Downloading plugin: structs from https://updates.jenkins.io/download/plugins/structs/latest/structs.hpi
 > matrix-project depends on junit:1.20,script-security:1.13
Downloading plugin: junit from https://updates.jenkins.io/download/plugins/junit/latest/junit.hpi
Downloading plugin: script-security from https://updates.jenkins.io/download/plugins/script-security/latest/script-security.hpi
 > credentials depends on structs:1.7
 > git depends on workflow-scm-step:1.14.2,credentials:2.1.13,git-client:2.4.0,mailer:1.18,matrix-project:1.7.1,parameterized-trigger:2.33;resolution:=optional,promoted-builds:2.27;resolution:=optional,scm-api:2.1.0,ssh-credentials:1.13,token-macro:1.12.1;resolution:=optional
Downloading plugin: workflow-scm-step from https://updates.jenkins.io/download/plugins/workflow-scm-step/latest/workflow-scm-step.hpi
Downloading plugin: mailer from https://updates.jenkins.io/download/plugins/mailer/latest/mailer.hpi
Skipping optional dependency parameterized-trigger
Skipping optional dependency promoted-builds
Downloading plugin: scm-api from https://updates.jenkins.io/download/plugins/scm-api/latest/scm-api.hpi
Skipping optional dependency token-macro
Downloading plugin: ssh-credentials from https://updates.jenkins.io/download/plugins/ssh-credentials/latest/ssh-credentials.hpi
 > junit depends on structs:1.2
 > git-client depends on credentials:2.1.13,ssh-credentials:1.13,structs:1.6
 > workflow-scm-step depends on workflow-step-api:2.9
 > ssh-credentials depends on credentials:2.1.0
 > mailer depends on display-url-api:1.0
Downloading plugin: display-url-api from https://updates.jenkins.io/download/plugins/display-url-api/latest/display-url-api.hpi

WAR bundled plugins:


Installed plugins:
credentials:2.1.14
display-url-api:2.0
git-client:2.4.6
git:3.3.1
gitlab-plugin:1.4.6
junit:1.20
mailer:1.20
matrix-project:1.11
scm-api:2.1.1
script-security:1.29
ssh-credentials:1.13
structs:1.9
workflow-scm-step:2.6
workflow-step-api:2.12
Cleaning up locks
/ $ exit
[root@liumiaocn ~]# docker restart jenkins
jenkins
[root@liumiaocn ~]#

插件安装确认

从新启动后确认此插件已经安装完毕
这里写图片描述svg

设定内容

系统管理 -> 系统设置处的Gitlab相关内容则为所需设定的内容工具

设定项目 设定方法 设定内容
gitlab链接名称 Gitlab -> Connection name邮件发送地址 gitlab链接的名称
gitlab的URL Gitlab ->Gitlab host URL 能够访问的gitlab的URL
认证信息 Gitlab ->Credentials 用来登录gitlab的认证信息

认证信息使用Gitlab的API Token的方式进行建立,首先确认一下Gitlab 的ApiToken的相关信息。gitlab

这里写图片描述

gitlab API相关的信息,能够参看:测试

gitlab之API http://blog.csdn.net/liumiaocn/article/details/74542191

使用确认到的API Token建立一个Gitlab API Token类型的Crendentials,详细信息以下:

这里写图片描述

在设定页面选中刚刚建立的Gitlab API Token

这里写图片描述

验证

设定完毕以后,点击Test Connection即可以确认jenkins和gitlab之间是否经过此插件进行了集成。页面显示Success说明已经OK。
这里写图片描述

总结

Jenkins与gitlab设定须要下载并安装gitlab-plugin插件,经过建立gitlab api token并使用,即可以经过gitlab-plugin插件提供的测试功能进行集成链接确认。