我们使用 TFS 源代码控制并有两个构建控制器(一个 VS2010 另一个 VS2012)。我们使用默认的构建工作流模板栏进行了一些自定义更改。
由于我们有很多分支,我们将如何根据所需的分支更改工作空间?
我正在考虑为分支 ( $\oursourcecontrol\branches\main
) 添加一个参数,然后将其作为变量传递到工作流的获取工作区部分。
或者有更好的方法吗?
你目前不能,这真的很遗憾。它将完全破坏触发器对 CI 和 Gates 签入的支持。您可以使用TFS 社区构建管理器快速克隆和调整构建定义以支持多个分支。
您可以做的是获取比您需要的更多的信息(例如$/Sourcecontrol/Branches/*
),然后在任何路径参数(如构建解决方案、测试设置文件等)上使用字符串替换来将它们全部指向正确的解决方案。您可能需要做一些模板,{BRANCH}
以便您可以轻松地替换这些标记。
Git 构建模板在 Git 存储库上确实支持此功能,但您需要 TFS 2013 才能使用服务器端 Git 支持。
我在包含 TFS 分支的更高级别的存储库选项卡中映射了服务器路径。隐藏获取源步骤不需要的其余分支,除了要构建的分支。并创建变量以传递分支名称,在排队时检查允许。在构建步骤中使用此分支变量以使构建定义适用于所有分支。根据 TFS 中的分支结构,您可能需要多个变量。