在Jenkins中配置多个mercurial存储库

Chr*_*ens 6 build-automation mercurial continuous-integration hudson jenkins

我们使用大约30个回购来处理我们公司的所有软件.我们的代码混合在C#,C++和python之间.我们最初将使用TeamCity作为我们的CI服务器,我发现使用我们的repo系统布局非常容易.但是,我的经理决定我们应该使用Jenkins.

当我开始设置Jenkins时,我发现它自然不会支持每个作业的多个存储库.有一个插件,但在维基页面上,插件的维护者承认它更像是一个概念验证,而不是一个坚实的功能,所以我对使用它犹豫不决,尽管最后,我可能被迫.

应该独立于每个仓库设置作业,还是可以运行单元测试和构建?我不认为这是一个可行的选择,因为我们的存储库相互依赖,除非我缺少配置或不同的插件.或者构建依赖于彼此可以做出这样的事情吗?

我们的最终目标是让Jenkins处理我们的开发区域的部署.事实证明,这在TeamCity中很容易实现,而且我认为在Jenkins中也应该这么容易.作业可以从其他工作中访问存储库吗?我不知道这是明确的,但在球队的城市,有项目的变量,可以让你选择你所定义的任何回购协议(即%FIRST_REPO%,%SECOND_REPO%)

总而言之,是否有一种可靠,干净的方式来处理Jenkins中的多个mercurial存储库?其他工作可以依赖另一个工作并访问另一个工作库吗?

我希望有比我更多CI经验的人可以提供帮助.也许不同的CI服务器可以更好地用于我们的设置,有没有人有使用BuildBot的经验?


我认为列出存储库的布局可能是有益的:

  • app1.application
  • app1.common
  • app1.deploy
  • app2.application
  • app2.common
  • app2.deploy
  • platform.common
  • platform.deploy

在哪里app1,app2将取决于一些资源platform.common.

Chr*_*ens 3

好吧,答案一直没有弄清楚。我们的解决方案是切换到TeamCity,这使我们能够相当轻松地做到这一点。如果您指定团队城市中的构建代理,则可以将存储库拉入不同的目录。从那里,存储库可以使用相对路径访问彼此的依赖关系。

我希望这可以帮助别人。在 Jenkins 中可能仍然有一种方法可以做到这一点,但我们无法找到一种直接的方法。