是否可以将一个Jenkins工作链接到另一个工作并建立上游/下游关系?

时间:2014-08-14 16:20:28

标签: groovy jenkins

我需要从一个上游作业中生成可变数量的作业。 AFAIK,没有可以做到这一点的插件。最接近的是MultiJob插件(https://wiki.jenkins-ci.org/display/JENKINS/Multijob+Plugin)。 所以我想创建一个构建步骤,使用其中一个Jenkins API(REST,groovy或jenkins-cli)来触发这些构建。 但是,如果我这样做,那些构建成为"分离" (意味着他们没有上游工作),主要工作与这些构建没有联系。

因此可归结为:是否可以开始构建作业并告诉它谁是上游?

3 个答案:

答案 0 :(得分:3)

Build Result Trigger个插件。它实际上是 Parameterized Trigger Plugin 的倒数。构建结果触发器不是像后者那样触发下游作业,而是让“下游”作业监视/监视上游作业的进度,并根据该结果触发。

这样,您的“上游”作业实际上并不知道正在观看它的下游作业。

答案 1 :(得分:2)

查看Groovy插件。

它可以让您根据需要开展多个工作,并设置上游原因。

代码示例: http://wiki.jenkins-ci.org/display/JENKINS/Groovy+plugin#Groovyplugin-Retrievingparametersandtriggeringanotherbuild

job.scheduleBuild2(0, new Cause.UpstreamCause(build), new ParametersAction(params))

答案 2 :(得分:0)

相关帖子在这里: How do I dynamically trigger downstream builds in jenkins?

但是,从我读过的所有答案中可以清楚地看到,使用Groovy / Java类 hudson.model.Cause.UpstreamCause(currentBuild)确实实现了以编程方式触发另一个作业的目标,但是它没有完全建立上游/下游关系。 检查构建时,您看不到任何上游/下游信息。查看这些内容的唯一方法是打开每个控制台的输出。