TFS Build 正在下载项目的所有分支源代码,这正在增加 space 在 TFS Server 上消耗

TFS Build is downloading all branches source code of a project, which is increasing the space consumed on TFS Server

我们正在使用 TFS 构建源代码并将源代码移动到 Web 服务器。在构建之前,文件被本地复制到 TFS 服务器中。在 TFS 中,代码的组织方式如图所示。

现在,构建是在网站级别 (QA-Web1) 上配置的。但是在构建之后,所有文件都会被下载(对于每个分支和每个网站)。这是在服务器上不断增加大小,要么需要手动清空,要么需要在服务器上添加space

有什么方法可以限制源代码下载到所需的文件夹吗?

还有,这个删除现有文件夹的动作怎么办?文件在名称为数字的文件夹中创建,与构建名称无关。数字和构建名称之间是否有任何映射?

您需要适当地设置构建的工作空间。您的工作区映射范围太广,可能映射到根目录 ($/TFS Project)。您需要缩小范围。这可以在存储库选项卡上完成。

根据您的屏幕截图,TFSAgent_Builddata_DEVQA 应该是您工作时的构建代理文件夹space。

变量Agent.BuildDirectory

创建给定生成管道的所有文件夹的代理上的本地路径。

编号和内部版本名称之间没有任何映射。 ..\TFSAgent_Builddata_DEVQA5 对于每个构建定义,它将创建一个文件夹(例如 1、2、3、4...525)。我们无法影响人数。

这部分的概念,你也可以看看这个类似的问题:Increment in _work directory

对于子文件夹:

  • ..\TFSAgent_Builddata_DEVQA5\a等于 Build.ArtifactStagingDirectory代理所在的本地路径 任何工件在被推送到目的地之前都会被复制到。
  • ..\TFSAgent_Builddata_DEVQA5\b等于 Build.BinariesDirectory 您可以用作代理的本地路径 已编译二进制文件的输出文件夹。
  • ..\TFSAgent_Builddata_DEVQA5\s 等于 Build.SourcesDirectory 源代码文件所在的代理 上的本地路径 下载.

Source Link

要减少构建代理的磁盘 space,您可以转到 Get sources -- Workspace mappings,如屏幕截图所示,并确保您已映射所需的项目建造。

仅将构建管道所需的文件夹包含在类型值 Map 中。如果映射文件夹的子文件夹包含构建管道不需要的文件,则使用类型值 Cloak 对其进行映射。更多详情请参考我们的官方教程:Mappings


其他方式:

  1. 你可以specify build retention policies,这将 自动删除旧的已完成构建以尽量减少混乱。 您在构建的 Retention 选项卡上修改这些策略 定义。
  2. 使用"Delete Files"实用程序任务。 $(Agent.BuildDirectory)$(Build.SourcesDirectory) 变量对此很有用。构建成功后会删除文件。更多信息请参考:Clear the work folder after each build

PatrickLu-MSFT 建议的解决方案。 "Changed the Map (in Repository) section to fetch specific Folder, instead of the parent Project Folder" 现在只有需要的文件夹被下载到服务器上的 Agent 文件夹中。