Jenkins:一个项目多个Git仓库

38
我希望使用两个Git存储库构建项目。其中一个包含源代码,而另一个具有构建和部署脚本。
我的问题是我需要一个存储库来构建和部署项目的不同部分(大型项目,多个存储库,相同的构建和部署脚本),但Jenkins似乎无法处理这种情况(或者我不知道/没有找到如何处理)。

这与https://dev59.com/VWUq5IYBdhLWcg3wC8BQ非常相似。 - Ola Eldøy
6个回答

31

更新

现在 Multiple SCMs 插件已经被弃用,因此用户应该迁移到 Pipeline 插件

旧回答

是的,Jenkins 可以处理这个问题。只需在源代码管理下使用 Multiple SCMs,添加您的仓库,然后进入每个仓库的高级部分。在这里,您需要设置Local subdirectory for repo (optional)Unique SCM name (optional)

您设置的本地子目录将拉取您的仓库,然后您可以按任何顺序构建它们。

根据 harish 的回答,您需要安装Multiple SCMs Plugin才能实现此功能。


多个SCMs插件现已被列为弃用。 - carl verbiest

18

12

当我查看多个SCM插件的答案时,我有同样的问题。我注意到该插件已被列为过时插件。有一条通知建议使用流水线进行操作。

以下是我如何使用流水线处理此问题的示例配置。

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

1
这应该是被接受的答案!你救了我的命。 - renelopez

2

分享一下我在处理多个源代码管理工具时的经验。如果您想在Jenkins构建中添加多个git存储库,请确保其他git插件版本与Multiple SCM插件兼容。以下是我使用过的插件及其版本列表:

  • GitHub API插件1.44
  • Jenkins GIT客户端插件1.6.2
  • Jenkins GIT插件2.0.1
  • Git服务器插件1.2
  • Multiple SCMs 0.2

早些时候,我升级到Multiple SCM 0.3,但无法在该部分添加任何git存储库。

祝好, Manu


0
如果您正在使用Credentials插件,并且想在构建过程中检出另一个Git存储库,您可以按照2021年的以下步骤进行操作:
  • 构建环境 -> 使用秘密文本或文件 -> 添加Git用户名和密码 -> 选择
  • 构建步骤 -> 添加执行shell执行Windows批处理命令PowerShell -> git clone https://...

如果您没有使用凭据,只需创建脚本即可。


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

我知道这是一个旧问题的答案,但我遇到了同样的问题并找到了解决方案。 - enkor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接