【发布时间】:2018-01-15 13:36:49
【问题描述】:
将 TeamCity 与 git 结合使用。
目前,TeamCity 设置了“master”作为默认分支。
通常,开发在另一个分支上进行(例如“dev”) - TeamCity 设置为监视“dev”上的更改并自动构建。
如果 DEADBEEF-SOME-SHA 已被 TeamCity 构建并标记为“dev”上的构建 1.2.3.4,并且我们将 git SHA1 快速合并到“master”,TeamCity 仍会执行构建 - 所以我们结束DEADBEEF-SOME-SHA 被标记为 1.2.3.4 和 1.2.3.5。
据我了解,将“dev”设为默认分支会阻止这种情况。
如果同一 SHA1 的构建已经成功,是否还有其他方法可以阻止 TeamCity 执行构建?
请注意,如果我们直接推送到 master(并且其他分支上不存在 SHA1/尚未构建),我仍然希望看到构建。
如果可能的话,我希望完全在 TeamCity 中实现这一点 - 无需额外的脚本/文件写入等。
【问题讨论】:
-
我想在 TeamCity 内完成所有这些 - 最好在触发器配置部分内完成。
-
这种行为还会强制进行完全不必要的构建,这会延长构建机器的负载而没有任何好处。这是一个明显的例子,观察相对于分支的变化,而不是带有明显的缺点(参见 stackoverflow.com/questions/36265182/… 另一个不必要的构建被触发)。