【问题标题】:How can more than one builds share a workspace多个构建如何共享一个工作区
【发布时间】:2013-09-23 12:57:34
【问题描述】:

我们有 4 个构建在同一个构建服务器上执行。它们使用相同的源代码,但使用不同的参数。每次构建时,它都会从源代码管理中下载 8 GB。 4 个构建可以使用相同的工作空间吗?

【问题讨论】:

    标签: tfs tfsbuild


    【解决方案1】:

    您可以通过在共享相同源代码的所有 4 个 TFS 构建定义中更改以下设置来将代码下载位置设置为一个位置:

    'Workspace' tab > 'Build Agent Folder'
    

    这里的默认值为 $(SourceDir) 和

    $(SourceDir) - Expands to $(BuildDir)\Sources by default
    $(BuildDir) - Expands to BuildAgent.BuildDirectory
    

    所以默认情况下,它会根据 BuildAgent 和您正在尝试的相应构建进行更改。

    但是,如果您将 Build Agent Folder 的值设置为本地路径(在 Build Agent 机器中可用),如“C:\Builds\CurrentProject”或 UNC 路径,如“\10.10.41.42\Builds\CurrentProject”,那么所有这 4 个版本都将下载到同一位置。

    在此之后,一旦您将新构建排入队列,请在以下部分的 Parameters 选项卡中: 1. Basic > Clean Workspace 如果您不想再次下载源代码,请选择NoneOutputs,如果您想下载源代码,请选择All

    【讨论】:

      【解决方案2】:

      我建议不要使用同一个工作区。每个工作空间执行许多 TFS 操作(例如,清理操作)。

      每个构建定义都有完整的源代码副本,但您可以采取一些措施来避免每次构建都需要下载 8GB:

      • 将工作区映射设置为按需下载(即映射到 $/Team/Solution/Project 未映射到 $/)。
      • 隐藏所有不需要下载的文件夹 - 我们有 0.5GB 的东西我们不需要。
      • 将构建定义的Clean Workspace 参数设置为Outputs。然后它只会下载上一个版本和下一个版本之间的更改。
      • 最后,您可以在构建服务器上设置一个 TFS 代理服务器,并让该服务器缓存所有源代码。

      【讨论】:

        猜你喜欢
        • 2021-08-30
        • 1970-01-01
        • 2015-04-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-16
        • 1970-01-01
        相关资源
        最近更新 更多