在 Visual Studio Team Services 上构建特定分支
Building specific branches on Visual Studio Team Services
我在 VS Team Services 中有一个存储库,设置为:
-root
|
| -Dev (.sln)
|
| -Releases
|
| - Test (.sln)
| - Live (.sln)
每个构建都运行良好,但是它拉取了整个存储库,我只希望它拉取一个特定的分支(Dev、Test 或 Live)
所以我在 dev 分支中选择 Solution.sln
文件...
在存储库选项卡上,您可以指定工作区映射,默认映射会获取整个存储库,不包括 $/project/drops
文件夹。
通过将第一个映射更改为不使用 $/Project
,而是使用 $/project/dev
,您将限制 get 操作的范围。如果您不再获得团队项目的根目录,则可以删除放置文件夹的外衣,否则只会引发警告:
接下来你应该做的是,如果你将这个构建设置为 CI 构建,它会在 Tiggers 选项卡上指定将触发此构建的文件夹,因为,同样是默认情况, CI 构建将触发整个团队项目中的任何更改。
为了让您将构建定义保留为模板,我建议使用 $(Build.SourcesDirectory)\MySolution.sln
而不是 $/project/dev/Mysolution.sln
,这样您只需要在克隆后更新构建定义的映射它到另一个分支根或将其保存为模板时。
我在 VS Team Services 中有一个存储库,设置为:
-root
|
| -Dev (.sln)
|
| -Releases
|
| - Test (.sln)
| - Live (.sln)
每个构建都运行良好,但是它拉取了整个存储库,我只希望它拉取一个特定的分支(Dev、Test 或 Live)
所以我在 dev 分支中选择 Solution.sln
文件...
在存储库选项卡上,您可以指定工作区映射,默认映射会获取整个存储库,不包括 $/project/drops
文件夹。
通过将第一个映射更改为不使用 $/Project
,而是使用 $/project/dev
,您将限制 get 操作的范围。如果您不再获得团队项目的根目录,则可以删除放置文件夹的外衣,否则只会引发警告:
接下来你应该做的是,如果你将这个构建设置为 CI 构建,它会在 Tiggers 选项卡上指定将触发此构建的文件夹,因为,同样是默认情况, CI 构建将触发整个团队项目中的任何更改。
为了让您将构建定义保留为模板,我建议使用 $(Build.SourcesDirectory)\MySolution.sln
而不是 $/project/dev/Mysolution.sln
,这样您只需要在克隆后更新构建定义的映射它到另一个分支根或将其保存为模板时。