如何使用 TeamCity 的 REST API 将新的构建工件(在我的情况下是一个大型日志文件)添加到(当前运行的)构建?
我的用例:
TeamCity 成功构建我的代码后,会将其发送到外部服务器进行单元测试。由于这些可能需要很长时间,因此我此时将构建与代理“分离”(
##teamcity[buildDetachedFromAgent]
)。单元测试服务器完成后,它使用 REST API 联系 TeamCity,完成构建(并报告任何失败的单元测试)。现在我还想将一些文件(即一些可能很大的日志文件)从单元测试服务器“上传”到 TeamCity 作为构建工件。似乎应该有一个 REST API 调用来执行此操作,但我在文档中找不到它。有什么想法吗?
TL;博士
根据您的描述,您的用例似乎非常不常见。 TeamCity 不是存储工具,因此没有 API 来上传它们。但你仍然可以为此做点什么。
一些解释
单元测试应该在构建期间在构建代理上执行。这是 CI 流程的一部分。如果您需要在专用环境上执行一些测试,它们通常被视为(取决于范围、项目和最终团队)集成/E2E/系统测试。因此,首先将应用程序部署到该服务器,然后对其运行测试。所有这些步骤都是 CI 周期的一部分,因此测试仍然由您的构建配置执行和控制,在构建代理上运行,并生成构建工件。
解决方案
话虽这么说,我想你可能有充分的理由继续这样做。
因此,您可以利用 dependent build 和 build chain 概念,而不是尝试上传工件: