2016-04-26 33 views
2

我有一个具有多个构建配置的teamcity管道。其中一些需要数据库进行测试。到目前为止,我还有一个在TeamCity中配置为共享资源的db模式池。作为第一步,每个构建配置都会锁定一个模式,然后将DB部署到其中。现在,我想要有一个可以锁定资源的构建配置,部署db,然后应该由管道中的其他构建使用它。保留对TC管道中共享资源的锁定(构建配置之间)

喜欢的东西:

deploy_db -> build_binaries -> unit tests 
          -> integration tests 
          -> ... other tests 

我想运行测试构建并行。为此,我需要在deploy_db中锁定一个模式,然后将锁传递给其他的构建。可能吗?

也许我可以从deploy_db中的模式池中锁定任何值,然后在其他构建配置中使用%dep.deploy_db.locked_schema%来锁定特定值。

然而,可能是另一个分支的构建可能会触发可能锁定相同模式的deploy_db(使用“锁定任何值”)?我的意思是,如果它在deploy_db完成之后并在下一次构建执行锁定之前触发,可能是可能的。在deploy_db之后以及在再次获取之前释放锁的时间会很短。从技术上讲,另一个版本可能会锁定同一个值。是否有可能防止这种情况发生?

例如,我可以从管道中锁定第一个版本的值,并在最后一个版本中释放它?

回答