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

问题描述 投票:35回答:5

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

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

git deployment build jenkins
5个回答
31
投票

UPDATE

现在不推荐使用多个SCM插件,因此用户应该迁移到Pipeline plugin

老答案

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

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

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


18
投票

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


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'
      }
    }   
  }
}

2
投票

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

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

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

Rgds,Manu


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.