使用一个构建任务来构建在源文件夹中签入的任何分支
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 是更好的方法。
另一方面,如果您手动触发构建,则可以参考这些步骤来构建特定分支。
- 编辑您的构建定义
- 添加变量(例如 BranchToBuild)并选中 Allow at Queue Time
- 更改存储库映射,例如 $/MyCompany/$(BranchToBuild)
- 队列构建并指定 BranchToBuild 变量的值。
关于您的方案(CI 构建),您可以分组 steps/tasks,然后使用该任务组为每个分支创建多个构建定义。
更多Task Group的信息,可以参考Task Groups
我目前为我的项目 Main 和 Dev 的开发分支设置了两个构建脚本。发布从 Main 完成,所有开发工作都签入 Dev。
理想情况下,我希望 Dev 是一个文件夹,下面有任意数量的分支。因为可以随意创建和删除分支,所以我想修改我现有的构建脚本以查找任何分支更改并构建它,但我不确定如何。
触发器
当前我的触发器设置为 Include
:$/MyCompany/Dev
。
如果我将 Dev
更改为一个文件夹并且其中有分支,它应该触发该文件夹下的每个分支检查,太好了......但是......我如何修改我的构建任务以仅构建那个分支变了?它还会拉下该文件夹下的每个分支吗?那会大大减慢构建速度。
构建任务
Solution
: **\*.sln
我应该将其更改为什么,以便它只构建更改的分支?
备注 我打算有 3 个构建配置。一个用于发布 [来自 Main],一个用于 Beta [来自 Dev] 和一个来自功能分支的 Alpha 版本。
编辑
我发现你可以使用 $(Build.SourceBranch)
,它在构建时看起来很有用,但在获取源代码时似乎不起作用?
你不能用 TFVC 做你想做的事。 Git 支持您要实现的方案。
正如 Daniel 所说,您无法用 TFVC 做您想做的事情,git 是更好的方法。
另一方面,如果您手动触发构建,则可以参考这些步骤来构建特定分支。
- 编辑您的构建定义
- 添加变量(例如 BranchToBuild)并选中 Allow at Queue Time
- 更改存储库映射,例如 $/MyCompany/$(BranchToBuild)
- 队列构建并指定 BranchToBuild 变量的值。
关于您的方案(CI 构建),您可以分组 steps/tasks,然后使用该任务组为每个分支创建多个构建定义。
更多Task Group的信息,可以参考Task Groups