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
源代码文件所在的代理 上的本地路径
下载.
要减少构建代理的磁盘 space,您可以转到 Get sources
-- Workspace mappings
,如屏幕截图所示,并确保您已映射所需的项目建造。
仅将构建管道所需的文件夹包含在类型值 Map 中。如果映射文件夹的子文件夹包含构建管道不需要的文件,则使用类型值 Cloak 对其进行映射。更多详情请参考我们的官方教程:Mappings
其他方式:
- 你可以specify build retention policies,这将
自动删除旧的已完成构建以尽量减少混乱。
您在构建的 Retention 选项卡上修改这些策略
定义。
- 使用"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 文件夹中。
我们正在使用 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
源代码文件所在的代理 上的本地路径 下载.
要减少构建代理的磁盘 space,您可以转到 Get sources
-- Workspace mappings
,如屏幕截图所示,并确保您已映射所需的项目建造。
仅将构建管道所需的文件夹包含在类型值 Map 中。如果映射文件夹的子文件夹包含构建管道不需要的文件,则使用类型值 Cloak 对其进行映射。更多详情请参考我们的官方教程:Mappings
其他方式:
- 你可以specify build retention policies,这将 自动删除旧的已完成构建以尽量减少混乱。 您在构建的 Retention 选项卡上修改这些策略 定义。
- 使用"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 文件夹中。