Jenkins和GitLab:如何设置不是由钩子触发的SCM感知作业?

时间:2016-01-22 17:56:59

标签: jenkins gitlab

为了给出一些上下文,问题是关于GitLab和Jenkins的设置。

我知道如何设置Web挂钩,我知道如何设置由挂钩触发的作业。问题是我需要有多个作业,并且只需要一个入口点(父作业)触发它们。

下游作业同时需要git repo知道,所以我必须为它们设置repo url。这导致它们被钩子独立触发,我不想要它,因为这意味着它们被触发了两次。

另一方面,如果我没有在下游作业上配置repo url并且父作业触发它,它就会失败,因为它无法进行结账。

我可能会尝试用一些“执行shell”来解决这个问题。建立步骤,我相信它不是一个有效的方法。有没有人知道如何解决这个问题?

这里的参考是GitLab Jenkins plugin documentation,根据该{{3}}:

  

插件将解析GitLab有效负载并提取其分支   正在推送提交并进行更改。然后它将扫描所有Git   詹金斯的项目,并开始构建那些:

     
      
  • 匹配GitLab回购的网址
  •   
  • 匹配配置的refspec模式(如果有)
  •   
  • 并匹配已提交的GitLab分支
  •   

我尝试使用不同的设置,但没有很好的结果。

1 个答案:

答案 0 :(得分:0)

对于您只想获得本地触发器的项目,只需在git插件的其他行为中启用不触发内置提交通知。 (https://github.com/elvanja/jenkins-gitlab-hook-plugin/issues/11#issuecomment-35385032,正如你实际发现的那样)。

但更好的解决方案可能是让您的下游作业引用主要作业本地克隆的存储库(不确定是否实际可行),因此插件永远不会将它们视为计划构建,因为git url不匹配