Continuous integration Jenkins/Hudson中的跨项目依赖关系

Continuous integration Jenkins/Hudson中的跨项目依赖关系,continuous-integration,dependencies,hudson,jenkins,Continuous Integration,Dependencies,Hudson,Jenkins,我在詹金斯设立了项目A和项目B。项目A孤立无援。然而,项目B的测试依赖于a的实时服务器实例 问题是:部署project A时,服务器会停机数十秒。如果项目B在那个时候正在运行测试,他们就会崩溃,婴儿耶稣会哭泣 我知道以下解决方案: 在B的测试中剔除A。(太复杂了,不会发生。无论如何,这是一个集成测试。) 在詹金斯中将B作为a的依赖项。(意味着我们不能在不启动A的情况下测试B。) 执行交错部署,以便池中始终有一台服务器。(我们正在研究这一点,但这不是小事。) 但有詹金斯的解决方案吗?我想说“如

我在詹金斯设立了项目A和项目B。项目A孤立无援。然而,项目B的测试依赖于a的实时服务器实例

问题是:部署project A时,服务器会停机数十秒。如果项目B在那个时候正在运行测试,他们就会崩溃,婴儿耶稣会哭泣

我知道以下解决方案:

  • 在B的测试中剔除A。(太复杂了,不会发生。无论如何,这是一个集成测试。)
  • 在詹金斯中将B作为a的依赖项。(意味着我们不能在不启动A的情况下测试B。)
  • 执行交错部署,以便池中始终有一台服务器。(我们正在研究这一点,但这不是小事。)

但有詹金斯的解决方案吗?我想说“如果任务测试B正在运行,请不要运行任务部署A”,但如果不实际合并构建,我无法找到这样做的方法。

我知道的两种解决方案

  • 在作业A和B上使用和使用相同的锁
  • 将与类别一起使用,并在a和B上使用相同的类别

  • 在这两种情况下,A和B都不允许同时运行。

    似乎A是B的依赖项:您将它们颠倒过来。是的,B依赖于A,但据我所知,无法表达这种关系(或者更具体地说,“不要在A做事时构建B”)在詹金斯乐园:你只能在完成后启动B。锁和闩锁现在似乎不受欢迎。油门插件是首选;提供更大的灵活性。