与Jenkins一起构建GitLab合并请求

时间:2016-03-24 02:33:45

标签: jenkins gitlab

我知道GitLab和Jenkins都有彼此的集成点,但由于我无法控制的原因,我也无法使用它们。

将参数传递给作业很容易告诉它哪个分支,甚至是哪个分支都可以构建。但是,我似乎无法将其调整到正确的配置,它将构建我作为参数传递的合并请求编号。

我需要使用开箱即用的git'詹金斯的功能。 (不能使用GitLab合并请求插件,因为它需要轮询repo。)必须手动启动此作业,并通过参数指定合并请求编号。我也不会用GitLab的webhook触发它。此要求是特定合并请求的手动和按需构建。

是否可能,我只是遗漏了一些(不)明显的东西?

2 个答案:

答案 0 :(得分:3)

所以没有其他人不得不忍受自己解决这个问题......是的... Jenkins可以开箱即用构建一个GitLab合并请求,没有疯狂的插件。

在Jenkins的Source Code Management部分,点击Advanced,然后将Refspec设置为:

+refs/merge-requests/*/head:refs/remotes/origin/merge-requests/*

然后,在Branch Specifier字段中,使用此:

origin/merge-requests/${MR}

其中$ {MR}是传递给构建的参数 - 要获取的合并请求的编号。

答案 1 :(得分:0)

在Jenkins的“源代码管理”部分中,单击“高级”,然后将Refspec设置为:

+refs/merge-requests/*/head:refs/remotes/origin/merge-requests/*

然后,在Branch Specifier字段中,使用:

以下是您可以占用https://github.com/jenkinsci/gitlab-plugin#defined-variables的变量,但在这种情况下您应该占用。

origin/merge-requests/${gitlabMergeRequestId}

其中 $ {gitlabMergeRequestId} 是传递给构建的参数 - 要获取的合并请求的编号。

我已经实现了GitLab webhook并且它正常工作