在TFS 2017中,您可以在同一个代理上执行所有阶段吗?

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

我们在内部使用TFS 2017 Update 3进行CI和CD。我们的构建服务器有两个代理。我们目前只有一些自动发布版本,但正在努力增加更多内容。典型版本具有3个环境,并且每个环境具有X阶段,以便在逻辑上分离/分组活动。例如:

  • 阶段1 - 替换令牌(下载工件并替换令牌)
  • 阶段2 - 部署数据库(跳过工件下载,使用阶段1的输出,并部署数据库)
  • 阶段3 - 部署服务(跳过工件下载,使用阶段1的输出,并部署服务)

直到最近,因为我们只有很少的版本,一次只发布一个版本,它运行正常。今晚我有点儿。

发生了什么是第1版开始,当它处于第3阶段时,第2版排队。第2版​​在代理2上开始第1阶段,因为第1版正在使用第1代。当第2版进入第2阶段时,代理1现已免费,因此它在代理1上执行第2和第3阶段。这导致阶段2和3版本2在前一个环境的发行版运行的文件夹中运行,从而导致将错误的设置复制到目标环境。我希望这很清楚。基本上QA设置被复制到PROD。

我曾经想过环境的所有阶段都在同一个代理上开始并完成。

那么,要实现“Agent Affinity”,我唯一的选择是使用1阶段吗?我会错过步骤的逻辑分离。我没有看到任何可以控制它的地方。

在此先感谢您的帮助。

tfs tfs2017 ms-release-management
1个回答
0
投票

阶段不应取决于先前阶段的输出。使用单相。

您可以使用任务组将步骤逻辑分组在一起。

© www.soinside.com 2019 - 2024. All rights reserved.