【发布时间】:2012-02-16 13:20:17
【问题描述】:
我在 Jenkins 中设置了项目 A 和项目 B。项目 A 自豪地独自站立。但是,项目 B 的测试依赖于 A 的实时服务器实例。
问题:当项目 A 部署时,它会使服务器停机数十秒。如果项目 B 当时正在运行测试,他们会感到厌烦,婴儿耶稣会哭泣。
我知道以下解决方案:
- 在 B 的测试中剔除 A。 (太复杂了,不会发生。反正这是一个集成测试。)
- 在 Jenkins 中使 B 成为 A 的依赖项。 (意味着我们不能在不先启动 A 的情况下测试 B。)
- 对 A 进行交错部署,因此池中始终存在一台服务器。 (我们正在研究这一点,但这并不重要。)
但是有 Jenkins 解决方案吗?我想说“如果任务 test B 正在运行,请不要运行任务 deploy A”,但如果不实际合并,我想不出办法做到这一点构建。
【问题讨论】:
-
似乎 A 是 B 的依赖项:你把它们颠倒了。
-
是的,B 依赖于 A,但据我所知,在 Jenkins 中无法表达这种关系(或者,更具体地说,“不要在 A 做事的时候构建 B”) -land:完成后你只能让A踢B。
标签: continuous-integration dependencies hudson jenkins