防止 TeamCity 在失败的构建上发布工件
Preventing TeamCity from publishing artifacts on failed build
这是我项目的 TeamCity 配置:
- TC 调用我的脚本 (FAKE - F# Make) 来构建和测试我的项目。
- 作为最后一步,同一脚本创建了一个 NuGet 包。
- 然后我使用 TC 的 "Build Failure Conditions" 机制来查看是否单元测试总数不低于上一个版本
即使我的构建在 运行 最后一步失败,NuGet 包也会作为工件发布。
我想情况并非如此 - 构建失败,因此不应将其提供的任何内容视为可靠的。
我发现大约 5 年前有人问过类似的问题:
How do I set TeamCity to not produce build artifacts when the build fails?
这表示 TC 中没有内置机制来支持它。这段时间有什么变化吗?在网上找不到任何东西。
我使用 TeamCity 9.0。
我对此的唯一解决方案是将包部署到 NuGet 作为单独的构建配置分开。这样,您可以在 TeamCity 中设置您的 dependencies/triggers,这样如果您的构建步骤失败,它就永远不会部署。
工件仍将在 TeamCity 端创建,因为如您所说,如果构建失败,我找不到阻止它发生的方法。但是,如果以这种方式设置,您的实际 NuGet 部署将永远不会执行,因为依赖项会在构建失败时阻止它。
这是我项目的 TeamCity 配置:
- TC 调用我的脚本 (FAKE - F# Make) 来构建和测试我的项目。
- 作为最后一步,同一脚本创建了一个 NuGet 包。
- 然后我使用 TC 的 "Build Failure Conditions" 机制来查看是否单元测试总数不低于上一个版本
即使我的构建在 运行 最后一步失败,NuGet 包也会作为工件发布。
我想情况并非如此 - 构建失败,因此不应将其提供的任何内容视为可靠的。
我发现大约 5 年前有人问过类似的问题: How do I set TeamCity to not produce build artifacts when the build fails?
这表示 TC 中没有内置机制来支持它。这段时间有什么变化吗?在网上找不到任何东西。
我使用 TeamCity 9.0。
我对此的唯一解决方案是将包部署到 NuGet 作为单独的构建配置分开。这样,您可以在 TeamCity 中设置您的 dependencies/triggers,这样如果您的构建步骤失败,它就永远不会部署。
工件仍将在 TeamCity 端创建,因为如您所说,如果构建失败,我找不到阻止它发生的方法。但是,如果以这种方式设置,您的实际 NuGet 部署将永远不会执行,因为依赖项会在构建失败时阻止它。