Continuous integration 是否可以防止TeamCity中的构建链中断?
我在TeamCity 7.1.3中有以下设置: 项目AContinuous integration 是否可以防止TeamCity中的构建链中断?,continuous-integration,teamcity,teamcity-7.1,Continuous Integration,Teamcity,Teamcity 7.1,我在TeamCity 7.1.3中有以下设置: 项目A 构建并部署一个 测试A(快速) 测试A(慢) 测试A(非常慢) 项目B 构建和部署B 测试B(快速) 测试B(慢) A的所有测试都依赖于“构建和部署A”,B的所有测试都依赖于“构建和部署B”。这些依赖项都是具有以下设置的快照依赖项: 如果有合适的版本,请不要运行新版本 仅使用来自合适版本的成功版本 在同一代理上运行构建 所有测试都有VCS触发器。慢速测试仅在源代码管理中的特定文件夹更改时运行。对项目a进行提交时,将以下项目添加到
- 构建并部署一个
- 测试A(快速)
- 测试A(慢)
- 测试A(非常慢)
- 构建和部署B
- 测试B(快速)
- 测试B(慢)
- 如果有合适的版本,请不要运行新版本
- 仅使用来自合适版本的成功版本
- 在同一代理上运行构建
- 构建并部署一个
- 测试A(快速)
- 测试A(慢)
- 测试A(非常慢)
- 构建和部署B
- 测试B(快速)
- 测试B(慢)
- 测试A(快速)
- 测试A(慢)
- 测试A(非常慢)
有没有办法在TeamCity有效地设置此功能?以下是我收集的信息:
- A和B应该被认为是相互排斥的
- A的生成优先级应始终低于B,但
- 启动后,不应中断
A
和B
部署到不同的目标。这将允许它们彼此完全独立地运行。使用多个生成代理(对于A
和B
至少各一个),以允许更快、更高优先级的B
与更慢、更低优先级的A
同时执行。(我认为,这将是一项重要的额外福利。)a
构建链的挂起部分不会被B
替换我通过让“构建和部署”构建配置向包含构建类型和构建编号的部署文件夹写入一个文本文件来解决这个问题。所有测试都将文本文件中的值与当前生成快照依赖项进行比较。如果它们的值不同,请重新触发生成(强制重新生成依赖项),然后取消当前生成 通过调用以下命令取消生成:
http://teamcity.jetbrains.com/guestAuth/ajax.html?comment=<CommentMessage>&submit=Stop&buildId=<BuildId>&kill
http://teamcity.jetbrains.com/guestAuth/ajax.html?comment=&submit=Stop&buildId=&kill
如何在依赖项设置为“重建”的情况下触发生成:
这意味着,当测试运行不同步时,将重新触发部署,然后测试将运行。能否平衡提交和预提交构建的优先级?这可能会阻止
B
插队。这将解决一些问题,但如果重新排序生成队列,它仍然不会被拾取。此外,我们希望个人构建以更高的优先级运行。