【问题标题】:TeamCity Build Chain configurationTeamCity 构建链配置
【发布时间】:2016-10-29 19:45:11
【问题描述】:

我有一个包含 4 个配置的 TeamCity 项目,构建链需要如下所示:

Build,可以手动触发并执行 .bat 脚本,编译一堆工件供 Deploy 和 TEST 使用。

部署和测试 - 区域 1Build 配置具有工件依赖性。

部署和测试 - 区域 2Build 配置有工件依赖关系。

由于我希望 Region1 和 Region2 在构建成功后立即并行运行,因此我向 Deploy and TEST – Region 1Deploy and TEST – Region 2 添加了 Snapshot 依赖项 关于 构建 配置

现在我需要配置 Test Status 配置来报告先前配置的失败/成功(部署和测试配置)。

如何做到这一点?另外,我是否需要针对我想要实现的用例在任何地方调整我的设置?

【问题讨论】:

    标签: continuous-integration teamcity build-automation build-chain


    【解决方案1】:

    设置看起来正确。要在 Test Status 配置中获取构建链状态,您需要在 Deploy and TEST – Region 1Deploy and TEST – Region 2 上添加快照依赖项强>配置。如果链中的任何构建失败,Test Status 构建也将失败,状态为:“快照依赖失败:​.​.​.​”

    如果您添加这些快照依赖项并通过 UI 运行 Test Status,整个构建链将被添加到队列中。您还可以在 Test Status 构建配置中配置一个 VCS 触发器,使用选项“Trigger on changes in snapshot dependencies”。启用此选项后,即使在依赖项而不是生成的构建中检测到更改,也会触发整个构建链。

    这个article 会很有帮助。

    【讨论】:

    • 行得通!但由于某些奇怪的原因,部署和测试 - 区域 1 和部署和测试 - 区域 2 即使在添加快照依赖项之后也不会并行运行。知道为什么吗?
    • 您是否已将两个构建(部署和测试 - 区域 1 以及部署和测试 - 区域 2)添加到构建队列中?是否有多个空闲代理可以运行这些构建?
    • 当我运行测试状态配置时,我有 4 个配置按此顺序添加到构建队列中 1)构建 2)部署和测试 - 区域 1 3)部署和测试 - 区域 2 4)测试状态.这些构建具有在一个特定代理上运行的明确要求。
    • 团队城市cannot run several builds on one agent at the same time。为什么需要在一个特定代理上运行所有构建?
    • 好的。我不知道。那么在同一台机器上添加另一个代理并删除显式要求有帮助吗?