我想使用两个Git存储库构建一个项目。其中一个包含源代码,另一个包含构建和部署脚本。
我的问题是我需要一个存储库来构建和部署项目的不同部分(大项目,多个存储库,相同的构建和部署脚本),但Jenkins似乎无法处理这个(或者我不知道/没找到怎么样。。
答案 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插件兼容。这是一个包含版本的插件列表,对我有用:
之前我升级到多个SCM 0.3,我无法在该部分添加任何git repo。
RGDS, 马努
答案 4 :(得分:0)
当您通过Multiple SCM插件添加另一个SCM并选择Git时。您可以指定&#39;签出到子目录&#39;通过&#39;附加行为&#39;回购的选项。 因此,您可以在工作区中拥有多个存储库。