【问题标题】:Jenkins projects pointing to same Mercurial repo do not share source指向相同 Mercurial 存储库的 Jenkins 项目不共享源
【发布时间】:2013-06-03 13:11:37
【问题描述】:

我正在使用 Jenkins 作为我们的构建服务器。我有多个项目使用相同的 Mercurial (Hg) 存储库,并且希望避免每个项目克隆它自己的本地存储库来构建(因为存储库相当大)。这应该可以通过 Jenkins 和 Mercurial 插件实现。

在我的 Mercurial 插件配置中,我检查了“使用存储库缓存”和“使用存储库共享”。在每个项目中,都会列出相同的存储库位置(通过 IP 地址指定的网络位置)。

但是,每个项目似乎仍然希望创建存储库的克隆。有什么想法吗?

【问题讨论】:

    标签: mercurial jenkins


    【解决方案1】:

    在我们的设置中(使用 Jenkins 1.506),我在高级项目选项下为我的每个构建定义了一个自定义工作区,通常位于 [project]\repo,然后从那里构建到 \build\ 文件夹中。

    如果您为每个 Jenkins 项目定义自定义工作区以使用相同的存储库源指向相同的共享自定义工作区,它将重用已有的内容。

    我没有对此进行测试,但我认为在此设置下,防止在同一工作目录中发生并发构建很重要。坏事会随之而来。

    作为后续问题:您不希望每个构建都有自己的源代码的理由是什么?

    【讨论】:

    • 为了解决后续问题,我想它来自于希望尽可能简单并保留磁盘空间。克隆整个存储库会占用大量磁盘空间,并且当我为大约 8 种不同的设置排列(x86 或 x64、VS2008 或 VS2010)构建每个项目时,这些排列往往会加起来。所有这些排列都依赖于完全相同的源代码,那么为什么要创建所有这些克隆呢?它可以工作,但会占用大量磁盘空间。
    • ... 它还延长了 Jenkins 的构建过程,因为每个 repo 都必须在进行更改时进行更新。我还目睹了 Jenkins 和 hg 可能很挑剔,有时 Hg 插件决定需要克隆而不是拉取。当您必须多次克隆时,这需要很长时间。
    猜你喜欢
    • 1970-01-01
    • 2011-02-18
    • 1970-01-01
    • 2018-02-23
    • 1970-01-01
    • 1970-01-01
    • 2011-12-06
    • 1970-01-01
    • 2023-04-05
    相关资源
    最近更新 更多