我知道GitLab和Jenkins都有彼此的集成点,但由于我无法控制的原因,我也无法使用它们。
将参数传递给作业很容易告诉它哪个分支,甚至是哪个分支都可以构建。但是,我似乎无法将其调整到正确的配置,它将构建我作为参数传递的合并请求编号。
我需要使用开箱即用的git'詹金斯的功能。 (不能使用GitLab合并请求插件,因为它需要轮询repo。)必须手动启动此作业,并通过参数指定合并请求编号。我也不会用GitLab的webhook触发它。此要求是特定合并请求的手动和按需构建。
是否可能,我只是遗漏了一些(不)明显的东西?
答案 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并且它正常工作