我有一个可以工作的Gitlab - Jenkins集成。当在Gitlab上创建MR时,将在Jenkins中触发构建。这是由Gitlab发送给Jenkins的请求完成的,其中包含大量信息,包括源分支和目标分支。
问题是,我无法在Jenkins中找到从那里读取源分支的方法,因为当在Gitlab上创建MR时,Jenkins会触发并构建自上次运行以来具有新提交的所有分支。我有一个安静的回购,这是可行的,通常来自MR的分支是最后推送的分支。
但是,我现在有一个项目,有许多推送,数百个功能分支,许多人都在玩这些代码,我永远不想构建这些分支。当创建和MR时,我只想构建MR的源分支。
我怎样才能做到这一点呢?我怀疑我应该能够以某种方式使用Gitlab发送给Jenkins的请求中的信息来获取源代码分支。
总而言之,当在Gitlab中创建MR时,在Jenkins中触发构建。但是,构建会发现所有分支都已更新
07:10:46 Seen 529 remote branches
07:10:46 > git show-ref --tags -d # timeout=10
07:10:46 Multiple candidate revisions
07:10:46 Scheduling another build to catch up with MR_Builder并将构建所有更新的分支。我想要防止这种情况,并且只构建触发构建的MR的源代码分支
发布于 2021-09-27 10:06:03
最后,我让它工作了。在Jenkins中工作的Source Code Management部分,我必须使用Gitlab中的变量指定Branches to build,就像这样的origin/${gitlabSourceBranch}。

发布于 2021-09-28 08:33:21
一种更好的方法,不需要硬编码特定的分支:https://docs.gitlab.com/ee/integration/jenkins.html#configure-the-jenkins-project
您可以按合并请求事件使用触发器,在所有分支中设置它。只有Jenkins构建分支有合并事件。
https://stackoverflow.com/questions/69341044
复制相似问题