使用 REST API 在 TeamCity 中创建构建工件

问题描述 投票:0回答:1

如何使用 TeamCity 的 REST API 将新的构建工件(在我的情况下是一个大型日志文件)添加到(当前运行的)构建?

我的用例:

TeamCity 成功构建我的代码后,会将其发送到外部服务器进行单元测试。由于这些可能需要很长时间,因此我此时将构建与代理“分离”(

##teamcity[buildDetachedFromAgent]
)。单元测试服务器完成后,它使用 REST API 联系 TeamCity,完成构建(并报告任何失败的单元测试)。现在我还想将一些文件(即一些可能很大的日志文件)从单元测试服务器“上传”到 TeamCity 作为构建工件。似乎应该有一个 REST API 调用来执行此操作,但我在文档中找不到它。有什么想法吗?

rest continuous-integration teamcity
1个回答
0
投票

TL;博士

根据您的描述,您的用例似乎非常不常见。 TeamCity 不是存储工具,因此没有 API上传它们。但你仍然可以为此做点什么。

一些解释

单元测试应该在构建期间在构建代理上执行。这是 CI 流程的一部分。如果您需要在专用环境上执行一些测试,它们通常被视为(取决于范围、项目和最终团队)集成/E2E/系统测试。因此,首先将应用程序部署到该服务器,然后对其运行测试。所有这些步骤都是 CI 周期的一部分,因此测试仍然由您的构建配置执行和控制,在构建代理上运行,并生成构建工件。

解决方案

话虽这么说,我想你可能有充分的理由继续这样做。

因此,您可以利用 dependent buildbuild chain 概念,而不是尝试上传工件:

  1. 将另一个构建配置添加到链中;
  2. 将其配置为在初始构建完成时触发;
  3. 让它从存储工件的位置(例如您的服务器或专用工件存储)下载工件,以便为您执行其余的分析和报告。
© www.soinside.com 2019 - 2024. All rights reserved.