jenkins与gitlab持续集成

jenkins可以和gitlab实现持续集成。也就是jenkins可以关联上gitlab的project,当gitlab的project有push请求后,会自动的触发jenkins,执行相关操作。

gitlab新建工程

在gitlab上,新建工程test-jenkins,这个工程将来会和jenkins协同工作。

新建一个README.md文件。这个README.md文件需要使用markdown格式编写。这里的http地址要记一下,因为后面的jenkins要使用。

创建好README.md文件。

新建一个c文件。

该c文件内容:

然后创建一个Makefile,用来将来jenkins执行。其实就是编译c文件,然后执行生成的a.out可执行程序。注意,命令前面,要两个tab。

自此,gitlab创建工程,以及创建文件就完成了。以上创建文件,是在gitlab网页上操作的,也可以使用ssh,http方式将该仓库通过git下载到本地,然后通过push上传文件。

Jenkins创建任务

需要创建一个jenkins任务,和gitlab中的工程关联,实现持续集成。

选择 构建一个自由风格的软件 项目。

进入到配置界面。

在源码管理中,选择git,然后输入gitlab工程的http地址。选择认证中的Add,增加认证。

输入用户名和密码,也就是gitlab的账号和密码。

在红色框,选择之前创建的认证。这样,jenkins就可以连接到gitlab,将该工程给clone下来。

在 构建触发器 选择中,选择当gitlab因为push变化时,自动build。把红色部分的URL地址记录下来。

在gitlab工程的settings下的integrations选项下,将jenkins中的上述URL填入到URL中。这个当gitlab工程因为push发生变化时,会通过这个URL通知jenkins,工程发生变化,从而触发jenkins的相关操作。

在 构建 选项,选择execute shell,执行的命令就是make。

这样,一个jenkins任务就创建好了。

点击 立即构建, 检查jenkins和gitlab的连接情况。会出现build结果。

查看该build结果的终端输出,执行了make命令,编译c代码,并执行a.out。因为a.out返回值是0,所以结果是成功。

对于jenkins,如果执行的shell命令,最终是返回非0,那就认为是失败,如果返回0,认为是成功。

在工作空间,gitlab工程的源代码,也clone了下来,并且生成了a.out文件。

当确认jenkins与gitlab成功关联后,后面就是相当奇妙的持续集成了。

修改gitlab工程的c代码。

当commit该文件后,也就是向版本库中push了更新,jenkins这边,就会自动检测到该更新,触发一个build操作。这一切,都是自动完成的,不需要我们干预。

最终,这个构建操作,是失败的,查看终端打印信息,可以查看详细信息。

这样,就实现了gitlab和jenkins的持续集成。每当gitlba版本库,有更新时,就会自动触发jenkins的构建任务。利用这个持续集成,我们可以做很多自动化工作。

Jenkins还可以设置,构建任务完成后,再执行一些操作。这些操作统称为构建后操作。在任务的设置界面中,可以进行设置。比如通过ssh登录到远程主机,做一些操作,或者发送邮件等等。

 

   图片看不清楚,可以下载pdf

   jenkins与gitlab持续集成.pdf

此条目发表在其他, 持续集成分类目录。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。