【问题标题】:How to trigger build with Continous Integration in TFS 2010 only if certain builds are not queued?仅当某些构建未排队时,如何在 TFS 2010 中使用持续集成触发构建?
【发布时间】:2014-12-18 20:15:02
【问题描述】:

我正在努力解决以下问题。 假设我们有解决方案 A、B、C 和以下依赖项:

A(无依赖关系)

B -> A(B 使用 A)

C -> A,B(C 使用 A 和 B)

我已经创建了具有批量连续集成的构建,因此每当我签入任何这些解决方案时,都会触发下一个构建。

现在,每当我签入 A、B、C 解决方案时,构建队列如下所示:

一个

B

C

C(在构建 B 完成后触发)

B(在构建 A 完成后触发)

C(在第二次构建 B 完成后触发)

但这需要太多时间。有没有办法让它们像那样触发:

一个

B(由于构建 A 在队列中并且它是 不一定要构建它)

C(由于构建 A 在队列中并且它是 不一定要构建它)

B(从构建 A 触发)

C(从构建 B 触发)

以便队列中没有重复的构建。多用户签到呢?

【问题讨论】:

    标签: tfs build queue continuous-integration


    【解决方案1】:

    您不能开箱即用。在进行构建之前,您必须编写一个活动来检查其他构建是否未运行。

    或者你接缝被束缚。为什么不将每个依赖项发布为 Nuget 包,而是对其进行依赖。那么你就不需要链式构建了。

    【讨论】:

      【解决方案2】:

      您可以使用Rolling Build 来做到这一点。

      Team Foundation Server 将收集在构建运行时排队的任何构建,并将它们作为一个构建运行。如果该构建失败,构建将单独运行以确定哪个构建是罪魁祸首。

      【讨论】:

      • 这无济于事,因为在签入后仍然会触发构建 B - 我正在并行构建项目以节省一些时间。或者我做错了什么。
      猜你喜欢
      • 1970-01-01
      • 2013-11-29
      • 1970-01-01
      • 1970-01-01
      • 2016-04-27
      • 2011-04-18
      • 2013-09-17
      • 2023-03-08
      • 2017-09-15
      相关资源
      最近更新 更多