我有两个代码库,一个是TFVC,另一个是Git。由于特定的技术原因,需要将它们分开。
TFVC中的代码是在私有构建代理上构建的,而Git中的代码是在托管代理上构建的。因此,目前我有两个独立的构建,并且它们的结果通过发布定义一起部署。
我想创建能够从这两个代码库获取源代码的构建,以便我只需管理单个构建定义。
有没有办法实现这一点?
我有两个代码库,一个是TFVC,另一个是Git。由于特定的技术原因,需要将它们分开。
TFVC中的代码是在私有构建代理上构建的,而Git中的代码是在托管代理上构建的。因此,目前我有两个独立的构建,并且它们的结果通过发布定义一起部署。
我想创建能够从这两个代码库获取源代码的构建,以便我只需管理单个构建定义。
有没有办法实现这一点?
目前,在获取资源的步骤中无法指定多个仓库。
用户发表了一个建议 允许TFS构建依赖于多个仓库。您可以投票并关注类似的功能。
现在的解决方法是手动从其他仓库获取文件。
例如,如果您在获取资源步骤中指定了TFVC仓库,则可以在任务开始时添加一个PowerShell任务,通过git clone <repo URL>
等命令来克隆其他git仓库。
TFVC 是 Team Foundation Version Control 的缩写,是微软的一种版本控制工具。
同时,你也可以采用 Marina 回答中的相反方式。默认情况下,将构建定义绑定到 Git 后,你可以添加一个 PowerShell 脚本来映射工作区并获取源代码:
tf workspace /new /noprompt /location:local /permission:private <name>
tf workfold /map $/Server/Path "$(Agent.BuildDirectory)\tfvc" /workspace:<name>
tf get "$(Agent.BuildDirectory)\tfvc"
并添加一个“始终运行任务”以在完成后清理工作区:
tf workspace /delete <name>
rd /s /q "$(Agent.BuildDirectory)\tfvc"
另一种选择是使用“下载构件”任务,从以下扩展中下载构件:发布管理的TFS构件。
或者使用VSTS自带的“下载构件”任务,但这需要一个链接到构建定义以进行下载,这意味着您可以在Git或TFVC上具有CI构建来构建源代码,或者仅附加源目录,然后在“其他”构建中获取这些构件。