【问题标题】:Using the same TFS build definition for multiple solutions对多个解决方案使用相同的 TFS 构建定义
【发布时间】:2016-02-17 02:02:09
【问题描述】:

我们的 TFS 2013 管理员为我们提供了一个构建定义来构建我们的解决方案并运行所有单元测试,但他们不愿意再创建任何构建定义。我们遵循功能分支策略,并希望将此构建定义用于我们的门控构建。我正在尝试找到如何将这个构建定义与多个分支一起使用。

我知道,我可以将所有分支添加到源设置并在签入时构建它们。但是我想知道,如果有什么方法可以在Source设置中添加分支,但只编译已经签入的解决方案。例如,如果我们在Source设置中添加5个解决方案,我们只想编译解决方案已更改,而不是全部 5 个解决方案。

【问题讨论】:

  • 一个构建工作流模板或构建定义?不知道为什么他们会随着项目和集合的增长而限制创建新构建定义的能力。我可以看到他们希望对任何新的构建定义使用相同的构建模板。

标签: tfs


【解决方案1】:

您将需要设置仅构建已更改的解决方案的增量构建。

理想情况下,您会希望为每个分支设置一个构建。您仍将使用提供给您的一个构建模板,但您将根据需要为每个分支定义不同的工作空间和行为。但是,如果您没有该选项,您仍然可以实现您正在尝试做的事情。

例如,如果您只想构建已更改的解决方案,您可以将构建设置为增量构建,如下所示:

  1. 在“Process”标签中,将“Items to build”部分更新为任何 *.sln 或 *.*proj
  2. 在“Workspace”部分中,如果为每个分支设置构建,则仅选择每个分支的源代码控制路径,如果必须这样做,则选择整个源代码($ /)。
  3. 通过更改“Process”选项卡上的构建过程参数将构建更改为增量构建 - CleanWorkspace=None
  4. 标记其中一个构建代理,使其成为用于这些增量构建的唯一代理。 将构建设置为仅使用此标记的代理。如果要进行增量构建,请务必使用相同的构建代理或一组代理进行构建。

【讨论】:

  • 您确定这不会再次构建未更改的项目吗?在将 Clean Repo 设置为 false 后,我在同一个代理上运行了测试,并且每次都构建了所有项目。
  • @chief7 将 Clean Workspace 更改为 None 并确保您在代理上有一个标签,并且该标签在构建中设置为仅使用具有该标签的代理。第一次它将构建一切。第二次就不行了。
  • 啊,我只是将 clean build 设置为 false。你赢了。我喜欢这个解决方案。编辑它你的答案,我会投票。除非你编辑它,否则我可以更改我的投票。
  • 更新了 CleanWorkspace=None
猜你喜欢
  • 2014-08-11
  • 1970-01-01
  • 2018-02-10
  • 1970-01-01
  • 1970-01-01
  • 2012-04-18
  • 2016-12-24
  • 1970-01-01
  • 2012-11-09
相关资源
最近更新 更多