GitLab+jenkins 进行代码Merge自动错误检测

分支合并前,通常需要在本地进行合并测试,看是否有代码冲突,编译是否通过,没有问题了,才敢把合并后的代码往主干分支提交,如果分支很多怎么办? 如果日常需要经常合并怎么办? 每次手动来这么一个测试步骤会不会很烦? 现在有这么一个插件,可以在服务器进行自动合并检测,并报告给GitLab, 用户可以愉快的进行合并分支。

一、在jenkins中安装Gitlab Merge Request Builder 插件

在可选插件中选择该插件并进行安装,如图

二、在jenkins系统设置中设置Gitlab Merge Request Builder

安装好插件后,在首页中点击“系统管理”-》“系统设置”可对Merge Request进行设置,如图

jenkins UserName:这个用户必须是GitLab用户,用于来访问GitLab的

Jenkis Api Token:这个Token可以从GitLab获取到

Crontab line:定时时间,推荐每5分钟检测一次

三、新建Job

首页点击“新建”,输入Job名,选择“构建一个自由风格的软件项目”,

配置Git源码,如图:

Credentials:不知道配置的请参考《Jenkins+Gradle+Git+Centos 实现android持续集成、打包(超详细)》

${gitlabSourceBranch}:合并的源分支,如develop,如果测试不通过,可直接输入develop分支名

${gitlabTargetBranch}:合并的目标分支,如master,如果测试不通过,可直接输入master

配置构建触发器,选择GitLab Merge Requests Builder

GitLab Project Path: 输入Git地址尾后部分,如git地址是git@gitlab.xxx.com:Android/long_temp.git,输入Android/long_temp

假如还需要在合并后测试是否编译通过,在构建步骤中,选择Invoke Gradle script,配置如下:

点击“保存”。

测试如下:

在GitLab中发起一个Merge Request

Jenkins在5分钟后(配置的时间)检测到这个pull Request,随后进行合并和构建的工作,并通知GitLab,如果测试通过(如图Tests Passed消息),点击Accept Merge Request,合并工作即可完成。

推荐阅读更多精彩内容