我最近在工作中完成了从Subversion到Git的所有回购。但是,使用svn我们已经提交了挂钩,以便我们的Jenkins作业可以运行以检查任何一个分支。现在,我尝试使用Gitlab进行设置,并且似乎只有一个地方可以添加Web挂钩。看起来任何时候检查任何分支,Web钩子都会运行。这意味着如果我有一个与jenkins_job_A相关联的branch_A,则可以将某些内容检入branch_B,并且jenkins_job_A的提交挂钩仍将运行。是否有分支方式来配置这些Web挂钩?或者是否有某种脚本我可以检查每个分支将作为提交钩子?或者(我担心)Gitlab不支持这个功能吗?
答案 0 :(得分:1)
我猜你设置GitLab来对http://yourserver/jenkins/git/notifyCommit?url=<URL of the Git repository>
做一个提交后请求?理论上,这应该触发对使用该URL配置的所有作业进行轮询,并且在轮询步骤中,作业应该决定是否应该构建它们。实际上,这将导致所有工作都被解雇。
我们通过将Job配置移动到Jenkins文件然后使用a Multibranch Pipeline解决了这个问题。
作为替代方案,您还可以安装GitLab plugin for Jenkins并使用Jenkins integration in GitLab。这将允许您在分支上推送提交时触发正确的作业。缺点是它需要按工作配置。