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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jenkins:一个项目的多个Git存储库相关的知识,希望对你有一定的参考价值。

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

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

答案

UPDATE

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

老答案

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

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

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

另一答案

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

另一答案

我有同样的问题,当我看到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'
      }
    }   
  }
}
另一答案

在处理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

另一答案

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

以上是关于Jenkins:一个项目的多个Git存储库的主要内容,如果未能解决你的问题,请参考以下文章

使用 Jenkins 管道将多个 git 存储库签出到同一个作业中

为多个 Git (GitHub) 存储库重用一个 Jenkins 作业

在 Jenkins for Git 中管理 SSH 密钥

如何在 Jenkins 中通过 *** 拉取/克隆 git 存储库?

单个目录指向多个git存储库

如何为具有共享代码库的多个项目正确设置 git?