![](/img/trans.png)
[英]Jenkins Gitlab integration - build on pushes to master branch only
[英]Jenkins - Gitlab integration how to build only source branch of MR?
我有一个有效的 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 的源分支
更好的方法,不需要对特定分支进行硬编码: https://docs.gitlab.com/ee/integration/jenkins.html#configure-the-jenkins-project
您通过合并请求事件使用触发器,在所有分支中设置它。 Jenkins 只有构建分支有合并事件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.