TeamCity - 在开始新构建时,我可以取消当前运行的相同配置的构建吗?

Lia*_*gan 6 teamcity continuous-integration integration-testing

我有一些长时间运行的集成测试,当我提交源代码控制时,由TeamCity服务器自动运行.

TeamCity允许我通过限制同时构建来防止这些任务同时占用所有构建代理,但是我想知道当新配置启动时TeamCity是否可以取消此配置的任何当前正在运行的任务?

在这种环境中,只要有新的源代码控制提交,旧的集成测试运行就无关紧要了,所以我不希望服务器浪费时间来运行旧版本的测试.

Sam*_*der 2

我认为这是不可能的,而且我想说这是设计使然。

想象一个允许这样做的世界,你永远不会知道哪个提交导致测试开始失败。如果您有足够的重叠提交,那么在您知道要运行的最终测试失败之前,您可能会进行 50 次构建,并且不知道是最后一次提交还是之前的 49 次提交导致了失败。

恕我直言,你最好集中精力,让多个运行可以在不同的服务器上同时发生,以获得你想要的速度,而不是把婴儿和洗澡水一起倒掉

更新

虽然我不认为这是开箱即用的支持,但如果我必须这样做,我想我会考虑在构建开始时收到通知(似乎没有关于正在排队的构建的通知,所以你必须允许多个构建同时运行以使其工作),然后您可以使用 API 取消其他构建:

您还可以使用 API 获取构建列表,因此应该能够取消所有不是最新的构建列表