使用一个构建任务来构建在源文件夹中签入的任何分支

Using one build task to build any branch checked in within Source Folder

我目前为我的项目 Main 和 Dev 的开发分支设置了两个构建脚本。发布从 Main 完成,所有开发工作都签入 Dev。

理想情况下,我希望 Dev 是一个文件夹,下面有任意数量的分支。因为可以随意创建和删除分支,所以我想修改我现有的构建脚本以查找任何分支更改并构建它,但我不确定如何。

触发器

当前我的触发器设置为 Include$/MyCompany/Dev。 如果我将 Dev 更改为一个文件夹并且其中有分支,它应该触发该文件夹下的每个分支检查,太好了......但是......我如何修改我的构建任务以仅构建那个分支变了?它还会拉下该文件夹下的每个分支吗?那会大大减慢构建速度。

构建任务

Solution: **\*.sln

我应该将其更改为什么,以便它只构建更改的分支?

备注 我打算有 3 个构建配置。一个用于发布 [来自 Main],一个用于 Beta [来自 Dev] 和一个来自功能分支的 Alpha 版本。

编辑

我发现你可以使用 $(Build.SourceBranch),它在构建时看起来很有用,但在获取源代码时似乎不起作用?

你不能用 TFVC 做你想做的事。 Git 支持您要实现的方案。

正如 Daniel 所说,您无法用 TFVC 做您想做的事情,git 是更好的方法。

另一方面,如果您手动触发构建,则可以参考这些步骤来构建特定分支。

  1. 编辑您的构建定义
  2. 添加变量(例如 BranchToBuild)并选中 Allow at Queue Time
  3. 更改存储库映射,例如 $/MyCompany/$(BranchToBuild)
  4. 队列构建并指定 BranchToBuild 变量的值。

关于您的方案(CI 构建),您可以分组 steps/tasks,然后使用该任务组为每个分支创建多个构建定义。

更多Task Group的信息,可以参考Task Groups