Jenkins与git实现联动

1、问题背景
在开发过程当中,有时候在git 主干上合并代码后,将代码部署到测试环境或者开发环境中,若是每次主干更改都须要从新部署,相对恶言就比较麻烦。本节主要介绍如何经过Jenkins实现与git的联动,即Jenkins监控代码托管仓库git的状态,若是git有变更,自动触发Jenkins执行构建操做,如代码部署、自动化测试等。
2、Jenkins job配置
(1)关于Jenkins的安装及job建立本节不在赘述,如图1所示,Jenkins服务端配置了两个job,选择study这个job,直接点击study(左侧的系统管理是针对Jenkins全局配置的,这个后面做者会有所介绍)
图1
图1
(2)上述操做即点击study这个job后,会跳转到图2的界面,选择“配置”,进入配置界面
图2
图2
(3) jenkins job 的源码配置
如图3所示,要实现Jenkins与git的联动,这里是关键。首先,源码管理选择git(若是这里没有git,须要先在步骤1提到的系统管理-》管理插件-》可选插件安装git plugin.注:安装的时候,系统会将相关的插件一并安装了)
Repository URL :这里是须要监控的git URL地址,一般就是咱们使用git clone URL 这里这个URL.
Credential :这里是认证方式。在开发环境中,常见的是经过公钥去认证。
图3
图3
图4
图4
首先在本地生成一对密钥。将公钥上传到git上面,这里点击Add,进入如图4的界面,选择SSH Uername with private key(这个根据实际状况选择,如用户名/密码认证等),咱们建立一个用户名jenkins,将生成的私钥粘贴到这里,保存,选择下拉框里就会显示咱们新建的用户认证,见图3.
图5是选择一些附加的条件,即git仓库发生什么操做才会触发这个jenkins job构建,这个选项可选,非必须
图5
图5
3、git 仓库钩子的配置
配置钩子的目的是实现git版本变动与构建操做的联动。
这里写图片描述
如图所示,在一个git项目中,点击settings,选择左侧的hooks-code(根据实际状况,可能有些公司专有的git会稍有区别,可是原理是一致的),URL里配置的是要触发的远程BUILD的URL,如http://10.5.237.114:8080/job/study/build?delay=0sec(这个地址根据实际状况设置,其中,study是一个job名称),能够选择触发条件。选好后点击下面的add web hook。添加成功后当git仓库变动时,触发条件(Push events /merge request evens/After Merged events),便会触发远程任务构建操做。
4、上面就是实现Jenkins与git联动的核心配置,若是认证这里不经过的话,保存job配置时会报错,根据报错信息,能够找出配置失败的缘由,其余配置在相关章节会介绍,有问题欢迎留言沟通。git