【问题标题】:How can I stop Jenkins pipeline execution till another one is completed如何在另一个完成之前停止 Jenkins 管道执行
【发布时间】:2017-05-26 22:09:15
【问题描述】:

大家好,我使用下游参数构建创建了构建管道。 例如,

In above example there is three pipeline Job-1 => Job-A => Job-B => Job-C Job-2 => Job-A => Job-B => Job-C Job-3 => Job-A => Job-B => Job-C

In that Job-1, Job-2, Job-3 jobs are on same level and all have same downstream jobs like Job-A => Job-B => Job-C.

对于上面的示例,假设 Job-1 的流程已经在进行中,并且当前正在管道中执行 Job-C。同时假设 Job-3 已经完成,它将尝试触发 Job-A,它应该等待 Job-C 的完成,它是之前管道的 Job-C,即 Job-1。 Job-C 完成后,它将触发 Job-A 用于 Job-3 管道。 Job-2 将继续。

在我的情况下我应该怎么做。希望你能理解。

【问题讨论】:

标签: jenkins continuous-integration jenkins-plugins pipeline jenkins-pipeline


【解决方案1】:

也许我还没有明白。但是如果如你所说,那1,2,3应该总是触发并完成A->B-->C。

您可以为每个 1、2、3 创建一个管道,为 A+B+C 创建一个管道(称为 ABC)。所以 1,2,3 都会调用 ABC 作业,可以节流,一次只允许运行一个(不允许并发执行)。

【讨论】:

  • 在我的情况下,1、2、3 ...n 是独立的作业,将手动或使用 scm 触发。并不总是一次触发。但每个工作都有下游作为 A->B-->C,这是常见的工作。所以我想我想运行我的 1、2、3 .. n
  • 好吧,我的建议是一样的。将 ABC 分组到一个管道或 build_flow 中并从 1,2,3...n 触发该作业。
  • 在我的情况下,1、2、3 ...n 是独立的作业,将手动或使用 scm 触发。并不总是一次触发。但每个工作都有下游作为 A->B-->C,这是常见的工作。所以我想独立运行我的 1、2、3 .. n 个工作。如果在任何情况下两个作业将同时触发并且作业 1 完成,它将首先执行完整的管道。如果 job-1 未完成 A->B->C 管道,第二个作业也将仅完成构建但等待触发他的管道。
  • 好吧,我一定没听懂你的意思。答案是一样的。由于您一次只能在 ABC 上运行,因此如果按照我的建议进行操作,您将获得所需的行为。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多