Jenkins:一个项目的多个Git存储库

时间:2013-05-14 08:17:11

标签: git deployment build jenkins

我想使用两个Git存储库构建一个项目。其中一个包含源代码,另一个包含构建和部署脚本。

我的问题是我需要一个存储库来构建和部署项目的不同部分(大项目,多个存储库,相同的构建和部署脚本),但Jenkins似乎无法处理这个(或者我不知道/没找到怎么样。。

5 个答案:

答案 0 :(得分:31)

<强>更新

现已弃用多个SCM插件,因此用户应迁移到Pipeline plugin

旧答案

是的,詹金斯可以解决这个问题。只需在源代码管理下使用Multiple SCMs,添加您的存储库,然后转到每个存储库的“高级”部分。在这里,您需要设置Local subdirectory for repo (optional)Unique SCM name (optional)

您的存储库将被拉到您设置的Local子目录,然后您可以按照您想要的任何顺序构建它们。

根据harish的答案进行更新 - 您需要安装Multiple SCMs Plugin才能实现此功能。

答案 1 :(得分:18)

来自Petr Mensik的回答是正确的,但詹金斯默认情况下似乎没有。需要安装Multiple SCM插件才能获得此功能:https://wiki.jenkins-ci.org/display/JENKINS/Multiple+SCMs+Plugin

答案 2 :(得分:9)

我有同样的问题,当我查看Multiple SCM插件的答案时,我注意到这个插件现在被列为已弃用。有一条通知建议使用管道。

以下是我如何通过管道实现此目的的示例配置。

node() {
  stage ('Extract') {
    parallel 'Extract':{
      dir('project1') {
        git url: 'ssh://git@githost/project1.git'
      }
      dir('project2') {
        git url: 'ssh://git@githost/project2.git'
      }
    }   
  }
}

答案 3 :(得分:2)

在处理Multiple SCM时分享我的经验。如果要在jenkins构建中添加多个git存储库,请确保其他git插件版本与Multiple SCM插件兼容。这是一个包含版本的插件列表,对我有用:

  • GitHub API插件1.44
  • Jenkins GIT客户端插件1.6.2
  • Jenkins GIT插件2.0.1
  • Git Server Plugin 1.2
  • 多个SCM 0.2

之前我升级到多个SCM 0.3,我无法在该部分添加任何git repo。

RGDS, 马努

答案 4 :(得分:0)

当您通过Multiple SCM插件添加另一个SCM并选择Git时。您可以指定&#39;签出到子目录&#39;通过&#39;附加行为&#39;回购的选项。 因此,您可以在工作区中拥有多个存储库。