Merge预检查的目的是为在开发流程中,gitlab设置权限后,代码提交,让jenkins模拟合并,然后构建一些任务(如build,单元测试,接口测试,sonar扫描等),设置条件,当有用例失败或者构建失败的话,自动关闭Merge请求。
jenins配置deploykey
在jenkins所在节点执行
1 | ssh-keygen |
按三下回车,然后查看生产的key
1 | cat ~/.ssh/id_rsa.pub |
复制,然乎到gitlab
仓库,配置中点击deploy key
, 添加,将复制的信息添加进去。不要忘了点击Enable
以启用。
Jenkins添加 deploykey用户
- 新建
job
,正常填写信息,源码管理下面有个Credentials
,点击后面的Add
Kind
选择SSH username with private key
,username
自定义,是用于在下拉列表中展示的,Private Key
选择Enter directly
,将上面复制的key复制到地下的框中,Description
里可以填写一些附加信息,描述作用(有时候列表里添加的用户信息太多名字重合可以加描述用以区分)。- 保存,下拉框选择刚刚加的用户。
配置Merge检查任务
- 紧接着刚刚那个
job
,源码管理处,点击Add Reponsitory
。在新出来的输入框中,Reponsitory URL
填写${gitlabSourceReponsitory}
,用户选择上面添加的用户。 - 下面一行
Branches to build
, 填写${gitlabSourceName}/${gitlabSourceBranch}
(仓库名/分支名)。 - 下方add中添加
Merge before build
,Name of reponsitory
填写origin
,Branch to merge to
填写${gitlabTargetBranch}
,Merge strategy
填写default
,Fast-forward mode
填写--ff
- 勾选下方
构建触发器
,Gitlab Project Path
填写源代码主仓库路径,如git@gitlab.abc.com:aa/bb
,则填写aa/bb
,Auto Close Failed
默认是勾选,控制失败后自动关闭Merge
请求,Crontab line
控制插件自动检测频率,通用写法。其他选项,根据字面意识理解就行。
剩下的就是自定义Excute Shell
检查配置是否成功
- fork一下主仓库,点击fork仓库的设置,在
deploy key
里enable
一下开头添加的key
- 更贵fork信息,提交代码到fokr仓库
- 向主仓库发起merge请求
- 等待一个crontab周期,看任务是否触发