使 TeamCity 始终发布工件

Mat*_*hid 5 teamcity

我很惊讶我找不到任何关于此的文档,但无论如何......

有时我的 TeamCity 构建会挂起,我最终需要停止它。构建过程会在磁盘上生成多个日志文件,然后 TeamCity 将其发布为构建工件。但是,如果我停止构建,TeamCity 将拒绝发布日志:

Build was interrupted. Artifacts will not be published for this build
Run Code Online (Sandbox Code Playgroud)

这些文件仍然存在于磁盘上,只是 TeamCity 不再发布它们。这尤其令人恼火,因为我真的非常需要查看这些日志中的内容,以便我可以找出构建首先挂起的原因。

有什么方法可以强制 TeamCity 始终发布构建工件,即使我必须中止构建?

(我看到几个问题询问如何在构建失败时停止TeamCity 发布工件,所以我有点困惑为什么我的设置还没有这样做,但无论如何......)

附言。我意识到我可以手动登录构建服务器来查看日志,但 TeamCity 的全部意义就是为我自动化类似的事情......

Jay*_*ris 2

TeamCity 无法在已停止的构建上进行发布,这与失败的构建不同。停止的构建更像是一个被终止的进程,而失败的构建是非零退出代码。

相反,我建议配置 TeamCity,这样您就不必停止构建。有两个选项可以启用:挂起构建检测和“运行时间超过”构建失败条件。两者都应该帮助 TeamCity 自动终止构建,而不是您必须停止它。

这样,您将得到失败的构建而不是停止的构建,并且您的工件应该发布。

  • 嗯,其实还有办法。您可以在最后一个构建步骤的帮助下发布工件,例如,使用此元运行器:https://github.com/JetBrains/meta-runner-power-pack/tree/master/artifacts-publisher。对于此构建步骤,您可以将执行策略设置为“始终,即使发出构建停止命令”。 (2认同)