【问题标题】:Cross-project dependencies in Jenkins/HudsonJenkins/Hudson 中的跨项目依赖
【发布时间】: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


【解决方案1】:

我知道的两种解决方案。

  1. 使用 Locks and Latches Plugin 并在作业 A 和 B 上使用相同的锁。
  2. Throttle Plugin 与类别一起使用,并在 A 和 B 上使用相同的类别。

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

【讨论】:

  • 锁和闩锁现在似乎已被弃用。
  • Throttle Plugin 是首选;提供更大的灵活性。
猜你喜欢
  • 2011-04-29
  • 2012-05-08
  • 1970-01-01
  • 2020-11-18
  • 2011-01-26
  • 2017-09-11
  • 1970-01-01
  • 2011-07-11
  • 1970-01-01
相关资源
最近更新 更多