我们有一个内部工具,可以将多个存储库中的多个组件管理到一个项目中;与谷歌的回购工具(https://code.google.com/p/git-repo/)或gitslave(http://gitslave.sourceforge.net/)性质相似。我们的项目不仅仅是一个git存储库。
依赖关系在“meta”存储库中定义,该存储库始终先检出,然后检查依赖关系。
我正在调查Jenkins并试图找到一种方法让它使用我们的工具来检查具有多个存储库的工作区。
以前有人做过这种事吗?我对詹金斯的文档感到有些不知所措,并不确定从哪里开始。
答案 0 :(得分:1)
由于您想使用您的工具,您可以在第一个构建步骤中运行它(或作为maven构建的预构建步骤)。正如@Electrawn已经提到的那样,您将丢失修订号。但是,也有解决方法。但是,如果您可以使用修订号编写属性文件,则可以使用EnvInject plugin加载属性文件。从那时起,您将可以访问构建作业中的属性。你也失去了Jenkins自动检查更改的能力。如果您的本地工具支持此功能,您可以创建第二个作业,该作业仅检查更改并在找到更改时触发构建作业。
这只是一种可能的解决方法。通过一点点创造力,您可以提出不同的解决方案。
最好的方法当然是编写自己的Jenkins插件。由于您已经完成了主要部分(编写自己的工具),因此您只需要实现Jenkins API。 ...或者可能更快,更新当前的git插件以适合您的项目结构。
答案 1 :(得分:0)
Subversion(以及jenkins subversion插件)允许通过SVN:外部容易。抛开个人意见......
由于git没有内置的简单外部功能,因此最好添加shell调用的多个预构建步骤,以便只检查所需的存储库的各个部分。您将无法像其他SCM插件那样获得自动REVISION编号。
SCM插件检查主项目
构建任务一(假设是linux):
git clone REPO %{WORKSPACE}/source/project2
构建任务二:
git clone REPO %{WORKSPACE}/source/project3
然后,您可以根据第一个评论者调查模块化工作并将工件推入链中,但是让我们首先在一个大型工作中构建您的项目。