文档章节

Gitlab Merge Request Builder Plugin 配置小记

憨厚的瓜
 憨厚的瓜
发布于 2014/07/09 00:46
字数 1491
阅读 9271
收藏 9

以前在给一些开源项目贡献代码的时候,在github上一提交pull request或者提交的分支代码更新了的时候,jenkins就会自动把代码进行merge并且运行单元测试,当时看了心里就2个字: NB!

那个时候心里就想,啥时候我也得弄这么一个高大上的玩意儿。随着 gitlab 在工作中的逐渐使用,这个想法越来越强烈。上周末搜来搜去,发现jenkins还真有一款针对gitlab的merge request的插件:Gitlab Merge Request Builder Plugin

当时就心痒难耐,开始看着说明一步步的配置。配置分成2大部分:

第一部分: 安装插件&基础设置


  • 首先安装插件,要求jenkins版本大于1.563,好在jenkins升级比较方便,在系统管理界面就有个大大的升级按钮,果断升级到1.570

  • 系统管理->插件管理->可选插件 里面搜出来 Gitlab Merge Request Builder 安装并重启 jenkins,官方文档在这里强调了需要重启jenkins

  • 重启之后,进入系统管理->系统设置 里面,能发现里里面多了Gitlab Merge Request Builder的配置项

    1. Gitlab Host URL 里填gitlab的服务地址,比如http://192.168.0.1

    2. Jenkins Username 里面填写jenkins的用户名,在这里需要在gitlab里面给jenkins创建一个跟你其他小组成员一样的账户,以便jenkins能在项目中发言

    3. Jenkins API Token 是jenkins在getlab中账户的一个权限校验码,这个码可以在使用jenkins账户登录gitlab后进入账户编辑界面的Account标签页中查到,在那里面叫Private token

    4. Crontab line 主要是配置jenkins多久去检查一次merge request的变更, 默认是 */5 * * * * 即 5分钟一次, 不过jenkins建议改成 H/5 * * * * 貌似可以改善并发。听人劝吃饱饭,我把*/5换成了H/5至今为止貌似还没发现问题。

    5. Enable build triggered message 是指在插件激活的时候在merge request界面发送一条jenkins已经开始工作的消息,不过我感觉,调试的时候还有点用,正常使用就有点啰嗦了。

    6. Default success messageDefault unstable message以及Default failure message三个配置分别是一个成功和两个失败的提示消息模板,干巴巴的字感觉不是很明晰,所以可以在里面增加emoji表情,比如 :smiley: 或者 :broken_heart:

    7. Ignore SSL Certificate Errors 顾名思义是忽略https的证书错误,这个选项对假设在局域网内的gitlab私服很有用,果断勾上!

  • 都配置好了之后不要忘记点击 保存 按钮

第二部分: 创建任务


  • 创建任务一开始和普通流程没啥两样,点击新建创建一个新任务,然后选择你需要的任务类型,因为我是maven项目所以我选了构建一个maven2/3项目,填好项目名称点击OK进入到任务详细配置页

  • 在这里官方文档上写着如果安装了GitHub plugin的话,可以在GitHub Project栏目里面随便填上你的项目在Gitlab里面的URL,不过我没装这个插件,所以跳过。

  • 找到源码管理栏目并选择Git,从这里开始比较重点

    • 按照常规填写了Repository URLCredentials之后,点击高级...按钮,在Name中填写origin
    • 为了支持从其他forked分支提交的merge requests需要再额外增加一个源。点击Add Repository,然后将新增加的源的Repository URL内容设置为${gitlabSourceRepository}Credentials和主源一样,高级...中的Name设置为${gitlabSourceName}
    • 找到Branch Specifier,将里面的内容改为${gitlabSourceName}/${gitlabSourceBranch}
    • 找到Additional Behaviours点击写着Add字样的下拉列表,选择Merge before build
    • 在新弹出的Merge before build区块中,设置 Name of repository 的值为 origin,设置 Branch to merge to 的值为 ${gitlabTargetBranch}
    • 官方文档在这里有一个提示,说要保证 Prune stale remote-tracking branches 没有被添加
  • 找到 构建触发器 栏目

    • Gitlab Merge Requests Builder 打上勾
    • Gitlab Project Path 里面填写项目的路径,格式类似于 your_group/your_project ,不知道怎么填可以打开你的项目在git的主页,然后参考看看URL,就是类似 http://git.tld/your_group/your_project,注意不要把整个URL都填进去,只需要填 your_group/your_project 这部分。
    • 官方文档中还提到了 Target Branch Regex ,貌似是个能起到分支白名单作用的选项,如果不填则所有的正常的merge request都能触发这个任务。不过不知道为什么我这里没有找到这个选项,所以就跳过了。
  • 到这里跟merge request相关的配置基本就完成了,然后就是配置一下项目其他的一些编译选项,比如我在maven编译的Goals and options中填写了clean test -U,这样构建就只执行到完成测试,这样就达到了在合并代码前先检查其质量的目的。

  • 一切配置完成后不要忘了点击保存按钮。


至此,配置全部完成。接下来就可以尝试创建一个merge request来看看是不是好使。

© 著作权归作者所有

共有 人打赏支持
憨厚的瓜
粉丝 5
博文 7
码字总数 3115
作品 1
大兴
程序员
私信 提问
加载中

评论(2)

k
kawaii
源码管理的配置能否私个截图,已经被fork分支弄晕。
donhui
donhui
mark
利用Jenkins完成Pre-MR的代码回归

前言 Gitlab作为一个功能强大的代码管理系统被广泛应用, 它的Merge Request(MR)机制已经在实践中被证明非常适合多人协同开发,一个MR里的代码可以被多人同时review, 并在确认有效后由Mas...

iq75
2018/07/10
0
0
基础GitLab的Code Review教程或指南

一、前言 1、本文主要内容 GitLab Code Review机制说明 Git Workflow 与 Git Code Review Workflow GitLab Code Review 配置说明 GitLab Code Review 流程演示 GitLab For IDE 插件介绍(Jet......

ken_io
2018/09/12
0
0
基于GitLab的Code Review教程

一、前言 1、本文主要内容 GitLab Code Review机制说明 Git Workflow 与 Git Code Review Workflow GitLab Code Review 配置说明 GitLab Code Review 流程演示 GitLab For IDE 插件介绍(Jet......

ken的杂谈
2018/08/25
0
0
GitLab 8.2.0 RC2 发布,代码托管平台

GitLab 8.2.0 RC2 发布,GitLab 8.2.0 主要改进如下: - Improved performance of finding projects and groups in various places - Improved performance of rendering user profile pages......

oschina
2015/11/21
878
6
GitLab 8.2.0 RC1 发布,代码托管平台

GitLab 8.2.0 RC1 发布,GitLab 8.2.0 主要改进: - Remove CSS property preventing hard tabs from rendering in Chromium 45 (Stan Hu) - Fix Drone CI service template not saving prop......

oschina
2015/11/17
951
2

没有更多内容

加载失败,请刷新页面

加载更多

Visual Studio 2017对xp的支持

等待VS2017安装程序配置结束会,会出现VS2017安装组件和工具配置界面,勾选工作负载左侧的“使用C++的桌面开发”组件和右侧的“对C++的Windows XP支持”、“MFC和ALT支持(x86和x64)”和“I...

simpower
28分钟前
0
0
VMware vSphere 服务器虚拟化部署安装图解

转载来源 :talkwithtrend :https://mp.weixin.qq.com/s/OJUINggNmiasooXDykHkow 一、VMware vSphere部署的前期规划要点 1、如何利用现在的设备架构虚拟化环境 在虚拟化过程中,用户大多会考...

寰宇01
28分钟前
2
0
mysql图表统计,补全日期

SELECT od.date, SUM(od.money)FROM ( SELECT SUM(money) money, DATE_FORMAT(create_time, '%Y-%m-%d') date FROM ......

时刻在奔跑
28分钟前
2
0
判断某一日期在另外一个日期之前

1.调用方式 oneDate.compareTo(anotherDate); 2.函数源码 /** * Compares two Dates for ordering. * * @param anotherDate the <code>Date</code> to be compared.......

hengbao5
47分钟前
1
0
docker 容器开发

package mainimport ("fmt""log""os""os/exec""syscall")/*func main(){cmd:= exec.Command("sh")cmd.SysProcAttr=&syscall.SysProcAttr{Cloneflags:sys......

whhbb
48分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部