繁体   English   中英

在Gitlab上为任何分支运行Jenkins构建

[英]Run Jenkins build for whichever branch was checked into on Gitlab

最近,我在工作中的所有存储库都从Subversion过渡到Git。 但是,使用svn时,我们已经落实了提交钩子,因此我们的Jenkins作业将为签入到的任何分支运行。 现在,我正在尝试使用Gitlab进行设置,似乎只有一个地方可以添加网络挂钩。 看起来任何时候将任何内容检入ANY分支,Web挂钩都会运行。 这意味着如果我有一个与jenkins_job_A关联的branch_A,则可以将某些内容检入branch_B,并且jenkins_job_A的提交挂钩仍将运行。 是否有逐个分支的方式来配置这些Web挂钩? 还是我可以检查进入分支的每个分支的某种脚本? 或者(我担心)Gitlab不支持此功能吗?

我猜您设置了GitLab来向http://yourserver/jenkins/git/notifyCommit?url=<URL of the Git repository>提交提交请求。 从理论上讲,这应该触发对使用该URL配置的所有作业的轮询,并且在轮询步骤中,作业应确定是否应该构建。 实际上,不幸的是,这将导致所有工作被解雇。

我们通过将Job配置移动到Jenkinsfile中,然后使用Multibranch Pipeline解决了此问题。

或者,您也可以为Jenkins安装GitLab插件,在GitLab中使用Jenkins集成 当在分支上推送提交时,这将允许您触发正确的作业。 缺点是它需要按作业配置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM