我使用Jenkins作为我们的构建服务器。我有多个项目使用相同的Mercurial (Hg)存储库,并且希望避免每个项目克隆它自己的本地repo来构建(因为repo相当大)。这应该可以通过Jenkins和Mercurial插件实现。
在我的Mercurial插件配置中,我已经检查了"使用存储库缓存"one_answers"使用存储库共享"。在每个项目中,都列出了相同的存储库位置(通过IP地址指定的网络位置)。
然而,每个项目似乎仍然想要创建一个存储库的克隆。什么好主意吗?
在我们的设置中(使用Jenkins 1.506),我在高级项目选项下为每个构建定义了一个自定义工作区,通常在[project]repo
,然后从那里构建到build
文件夹。
如果你为每个Jenkins项目定义自定义工作区,使用相同的源代码指向相同的共享自定义工作区,它将重用已经存在的内容。
我还没有对此进行测试,但是我认为在这种设置下,防止在同一工作目录中发生并发构建是很重要的。坏事随之而来。
作为一个后续问题:您不希望每个构建都有自己的源代码的理由是什么?