Tfs 多个构建如何共享一个工作区
我们有4个构建在同一个构建服务器上执行。它们使用相同的源代码,但使用不同的参数。它每次从源代码管理下载8GB的版本。4个生成是否可以使用相同的工作区?您可以通过更改共享相同源代码的所有4个TFS生成定义中的以下设置,将代码下载位置设置为一个位置:Tfs 多个构建如何共享一个工作区,tfs,tfsbuild,Tfs,Tfsbuild,我们有4个构建在同一个构建服务器上执行。它们使用相同的源代码,但使用不同的参数。它每次从源代码管理下载8GB的版本。4个生成是否可以使用相同的工作区?您可以通过更改共享相同源代码的所有4个TFS生成定义中的以下设置,将代码下载位置设置为一个位置: 'Workspace' tab > 'Build Agent Folder' 这里的值默认为$(SourceDir)和 因此,默认情况下,它将根据BuildAgent和您正在尝试的相应构建进行更改 但是,如果将生成代理文件夹的值设置为本地路径(
'Workspace' tab > 'Build Agent Folder'
这里的值默认为$(SourceDir)和
因此,默认情况下,它将根据BuildAgent和您正在尝试的相应构建进行更改
但是,如果将生成代理文件夹的值设置为本地路径(在生成代理计算机中可用),如“C:\Builds\CurrentProject”或UNC路径,如“\10.10.41.42\Builds\CurrentProject”,则所有这4个生成都将下载到同一位置
在此之后,在下一节的Parameters
选项卡中将新生成排队后:
1。基本>清理工作区
如果不想再次下载源代码,请选择None
或Outputs
,如果想下载源代码,请选择All
。我建议不要使用相同的工作区。每个工作区执行许多TFS操作(例如,清理操作)
每个构建定义都有源代码的完整副本,但您可以做一些事情来避免每次构建都下载8GB:
- 设置您的工作区映射以下载所需的内容(即映射到
$/Team/Solution/Project
而不是映射到$/
)
- 隐藏任何不需要下载的文件夹-我们有0.5GB的不需要的东西
- 将生成定义的
清理工作区
参数设置为输出
。然后它将只下载上一个构建和下一个构建之间的更改
- 最后,您可以在构建服务器上设置TFS代理服务器,并缓存所有源代码
$(SourceDir) - Expands to $(BuildDir)\Sources by default
$(BuildDir) - Expands to BuildAgent.BuildDirectory