TeamCity:管理验收测试的部署依赖性?

我正在尝试在TeamCity 6中配置一组构建配置,并尝试以最简洁的方式为TeamCity启用特定需求建模。 我有一组验收测试(大约4-8个测试套件,按照他们所属系统的功能区域分组)我希望并行运行(我将它们建模为构建配置,以便它们可以分布在一个一组代理商)。 从我最初的研究来看,似乎有一个
AcceptanceTests
元构建配置通过快照依赖关系引入一组单独的Acceptance测试配置应该可以解决问题。然后我所要做的就是说我的
Commit
build配置应该触发
AcceptanceTests
并且它们都会被拉进去。所以,我想说我也有
AcceptanceSuiteA
AcceptanceSuiteB
AcceptanceSuiteC
到目前为止,这么好(我知道我也可以转向另一种方式并导致
Commit
配置触发
AcceptanceSuiteA
AcceptanceSuiteB
AcceptanceSuiteC
- 问题我需要手动汇总结果以确定验收测试的总体成功整个)。 复杂的一点是,虽然
AcceptanceSuiteC
只需要一些
Commit
的工件,然后可以自己生活,
AcceptanceSuiteA
AcceptanceSuiteB
需要:
DeploySite
(假设它需要2分钟而且我不能为了这次运行而旋转一个完全孤立的) 对部署的站点运行测试 问题是我需要能够确保: 该网站只配置一次 两个套房正在运行时,该网站不会被破坏 如果我将
DeploySite
设置为构建配置并将
AcceptanceSuiteA
AcceptanceSuiteB
作为快照依赖项拉入,AFAICT: 随后或并行运行的
AcceptanceSuiteB
可以触发另一个
DeploySite
,这将破坏
AcceptanceSuiteA
和/或
AcceptanceSuiteB
正在使用中的部署。 虽然我可以说限制同时运行的构建的数量以强制一次只发生一个,我需要一次一个,而不是依赖件仍在运行。 TeamCity中有没有方法来建模这样的层次结构? 编辑:想法: - 一个废话解决方案是
DeploySite
可以设置'使用中标志'标记,然后让
AcceptanceTests
配置清除该标志[在
AcceptanceSuiteA
AcceptanceSuiteB
完成后]。然后问题变成让管道下一个
DeploySite
等待直到所述门再次打开(在构建中进行阻塞等待,感觉不对 - 我希望它被标记为'尚未启动'而不是看起来像做一些事需要很长时间才能完成。然而,这种东西在这里有一个标志并且有点检查它是我试图摆脱的那种可变的状态/片状气味。 编辑2:如果我可以通过编程方式更改代理配置,我可以将代理要求设置为要求InUse = false,然后在部署启动时设置标志并在测试运行后清除它     
已邀请:
看起来你先去看看Jetbrains Devnet和YouTrack跟踪器,并记住在搜索中使用魔术字
clobber
。 然后你安装groovy-plug并使用
StartBuildPrecondition
设施   要使用该功能,请添加system.locks.readLock。或system.locks.writeLock。属性到构建配置。   只有在没有使用同名的读或写锁运行的构建时,才会启动使用writeLock的构建。   只有在没有使用相同名称的写锁运行的构建时,才会启动使用readLock的构建。 其中管理依赖配置'读'和
DeploySite
配置'写'共享项的事实。 (这不是完整的产品化解决方案,因此跟踪器项目保持打开状态) 编辑:我仍然不知道锁是否应该在构建参数|系统属性和确切的名称格式应该是什么,是
locks.writeLock.MYLOCKNAME
(即,在配置中显示参考语法
%system.locks.writeLock.MYLOCKNAME%
)? 其他的益智游戏是:如何管理由writeLock任务读取访问的构建完成触发的构建 - 锁定是否被丢弃直到下一个读取(这将允许另一个写入者) - 或者是否有必要排队父母和孩子的依赖同时?     

要回复问题请先登录注册