我们使用大约30个回购来处理我们公司的所有软件。我们的代码混合在C#,C ++和python之间。我们最初将使用TeamCity作为我们的CI服务器,我发现使用我们的repo系统布局非常容易。但是,我的经理决定我们应该使用Jenkins。
当我开始设置Jenkins时,我发现它自然不会支持每个作业的多个存储库。有一个插件,但在wiki page插件的维护者承认它更像是一个概念验证,而不是一个坚实的功能,所以我很犹豫要使用它,尽管最后,我可能会被迫。
应该独立于每个仓库设置作业,还是可以运行单元测试和构建?我不认为这是一个可行的选择,因为我们的存储库相互依赖,除非我缺少配置或不同的插件。或者构建可以依赖于彼此来制作这样的东西吗?
我们的最终目标是让Jenkins也能够处理我们的开发区域。事实证明,这在TeamCity中很容易实现,而且我认为在Jenkins中也应该这么容易。作业可以从其他工作中访问存储库吗?我不确定这是否清楚,但在团队城市中,有一些项目变量可以让您选择您定义的任何仓库(即%FIRST_REPO%
,%SECOND_REPO%
)
总结一下,有没有一种可靠,干净的方式来处理Jenkins中的多个mercurial存储库?其他工作可以依赖另一个工作并访问另一个工作库吗?
我希望有比我更多CI经验的人可以提供帮助。也许不同的CI服务器可以更好地用于我们的设置,有没有人有使用BuildBot的经验?
我认为列出存储库的布局可能是有益的:
app1
和app2
取决于platform.common
的某些资源。
答案 0 :(得分:3)
嗯,答案从未弄明白。我们的解决方案是切换到TeamCity,这使我们可以相当容易地做到这一点。如果您指定它们,那么在团队城市中构建代理可以将存储库拉入不同的目录。从那里开始,repo可以使用相对路径访问彼此的依赖关系。
我希望这有助于某人。詹金斯可能仍然有办法,但我们无法找到一种直接的方式。
答案 1 :(得分:0)
截至当前版本的Jenkins& Mercurial插件,它不支持从多个repos中提取。
但是,您可以通过链接作业,每次拉动一个作业,让他们共享工作区来实现此目的。