社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
作为持续集成的利器Jenkins已经得到了广泛地应用,仅仅作为一个工具,Jenkins已然有了自己的生态圈,支持其的plugin更是超过1300+。在实际中如何使用以及如何更好地使用jenkins,一直是大家在实践并讨论的。本系列文章将会从如何使用jenkins方面对一些细节进行总结和整理,这篇文章将会介绍如何在Jenkins中实现与gitlab的集成
只要有jenkins即可,没有的可以使用Jenkins官方的镜像或者安装包,或者使用Easypack中封装的基本一致的Jenkins。
docker pull镜像
[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/jenkins
[root@liumiaocn ~]# docker run -d -p 8090:8080 -p 50000:50000 --name jenkins liumiaocn/jenkins
63dc2d52de03074858a6b61db4955345a66cfd436c5a47384924e9e3f8177778
[root@liumiaocn ~]#
与gitlab的集成也是通过插件来做的,需要安装GitLab Plugin插件,目前版本是1.4.6,通过使用这个插件进行集成能够使得gitlab在push之后能够调用jenkins进行构建。详细说明如下图所示
可以使用jenkins的插件管理页面进行安装,也可以使用其id(gitlab-plugin)在镜像中进行安装并重启镜像即可。在mailer中我们也使用了jenkins官方所提供的install-plugins.sh,连同依赖关系一起安装给自定义jenkins会带来极大的方便。
[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 ~]#
重新启动后确认此插件已经安装完毕
系统管理 -> 系统设置处的Gitlab相关内容则为所需设定的内容
设定项目 | 设定方法 | 设定内容 |
---|---|---|
gitlab连接名称 | Gitlab -> Connection name邮件发送地址 | gitlab连接的名称 |
gitlab的URL | Gitlab ->Gitlab host URL | 可以访问的gitlab的URL |
认证信息 | Gitlab ->Credentials | 用来登陆gitlab的认证信息 |
认证信息使用Gitlab的API Token的方式进行创建,首先确认一下Gitlab 的ApiToken的相关信息。
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插件提供的测试功能进行集成连接确认。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!