【问题标题】:It cannot be determined, which agent will be used for which build configuration in parallel Multi-config builds无法确定,哪个代理将用于并行多配置构建中的哪个构建配置
【发布时间】:2019-03-07 06:42:42
【问题描述】:
我们根据 BuildConfiguration 变量使用多重配置,并在我们的一个构建中与 Clean:false 并行运行发布和调试。
在代理队列中,我们有两个代理满足此特定构建定义的要求。
问题是无法在此构建上设置代理。
这就是为什么你不能肯定地说调试总是在代理 x 上构建并在代理 y 上发布。
如果现在一旦在代理 x 上构建发布,那么文件就在那里并且不会被删除。
如果这导致它在填充 drop 时复制了一些内容,那么“过时”的文件将在那里结束。
一个选项是 Clean:All,但我们不想错过增量模式。
这个问题有解决办法吗?
【问题讨论】:
标签:
tfs
vnext
multi-configuration
build-management
【解决方案1】:
不,您的方案根本不受支持。您可以通过让一个队列/一组标签基本上拥有一组 ONE 代理来解决它,但就是这样。
否则,您将超出范围。代理上的任务应该是独立的。 CLean all = false 应该纯粹是一种性能调整(无需编译未更改的内容等)。不应该允许后续作业引用另一个作业留下代理的状态。
在某些情况下,我会使用自己的文件服务器作为缓冲区。鉴于我的代理在本地运行并且具有非常高的带宽连接(每台服务器 200 千兆位),我可以将编译结果移动到缓冲区文件夹并返回,而开销基本上为零(如:零感觉开销)。特别是在真正有帮助的多代理工作中(为 16 个代理下载 16 次 selenium 测试 - 不,谢谢)。