Jenkins / Hudson中的跨项目依赖项

时间:2012-02-16 02:26:26

标签: continuous-integration dependencies hudson jenkins

我在Jenkins中设置了项目A和项目B.项目A自豪地独自站立。但是,项目B的测试依赖于A的实时服务器实例。

问题:当项目A部署时,它会使服务器停机几十秒。如果项目B当时正在进行测试,那么他们就会被塞进来,而且耶稣也在哭泣。

我知道以下解决方案:

  • 在B的测试中记录A。 (过于复杂,不会发生。无论如何,它都是集成测试。)
  • 使B成为Jenkins中A的依赖。 (意味着我们不能在不首先开始A的情况下测试B。)
  • 交错部署A,因此池中总有一台服务器。 (我们正在考虑这个问题,但这并非无足轻重。)

但是有Jenkins解决方案吗?我想说“如果任务测试B 正在运行,请不要运行任务部署A ”,但我无法找到一种方法来实现这一点而不实际合并构建。

1 个答案:

答案 0 :(得分:3)

我所知道的两种解决方案。

  1. 使用Locks and Latches Plugin并对作业A和B使用相同的锁定。
  2. Throttle Plugin与类别一起使用,并在A和B上使用相同的类别。
  3. 在这两种情况下,A和B都不允许同时运行。