防止TeamCity在失败的构建上发布工件

时间:2015-12-14 16:15:42

标签: continuous-integration teamcity f#-fake

这是我的项目的TeamCity配置:

  • TC调用我的脚本(FAKE - F#Make)构建&测试我的项目。
  • 作为最后一步,相同的脚本会创建一个NuGet包。
  • 然后我使用TC的“构建失败条件”机制来查看是否例如单元测试的总数不少于之前的版本。

即使我的构建在运行最后一步时失败,NuGet包也会作为工件发布。

我想情况并非如此 - 构建失败,所以它提供的任何内容都不应被视为可靠。

我在5年前发现了类似的问题: How do I set TeamCity to not produce build artifacts when the build fails?

表示TC中没有内置机制来支持这一点。在此期间有什么变化吗?在网上找不到任何东西。

我使用的是TeamCity 9.0。

1 个答案:

答案 0 :(得分:1)

我唯一的解决方案是将包的部署分离到NuGet作为单独的构建配置。这样,您可以在TeamCity中设置依赖项/触发器,以便在您使用的构建步骤失败时永远不会部署。

仍然会在TeamCity端创建工件,因为正如您所说,如果构建失败,我找不到阻止它的方法。但是,如果以这种方式设置,您的实际NuGet部署将永远不会执行,因为依赖性将阻止构建失败。