当前位置: 首页 > 知识库问答 >
问题:

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

樊浩初
2023-03-14

我需要从一个上游作业生成可变数量的作业。AFAIK,没有插件可以做到这一点。最近的一个是多任务插件(https://wiki.jenkins-ci.org/display/JENKINS/Multijob插件)。因此,我想创建一个构建步骤,使用Jenkins API(REST、groovy或Jenkins cli)之一来触发这些构建。但是,如果我这样做,这些构建将变得“分离”(意味着它们没有上游作业),并且主作业与这些构建没有关联。

因此,它可以归结为:有可能启动一个工作构建并告诉它谁是它的上游吗?

共有3个答案

庄欣然
2023-03-14

一个相关的帖子在这里:我如何在jenkins中动态触发下游构建?

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

顾骏祥
2023-03-14

查看Groovy插件。

它会让你解雇尽可能多的工作,并设定上游原因。

代码示例:http://wiki.jenkins-ci.org/display/JENKINS/Groovy插件# Groovyplugin-retrievingparametersandtriggeringanosbuild

job.scheduleBuild2(0, new Cause.UpstreamCause(build), new ParametersAction(params))
王嘉木
2023-03-14

有一个生成结果触发插件。它实际上是参数化触发器插件的反面。不像后者那样触发下游作业,构建结果触发器允许“下游”作业监视/监视上游作业的进度,并根据该结果触发。

这样,你的“上游”工作实际上并没有意识到下游工作正在关注它。

 类似资料:
  • Jenkins场景详细信息: ====================== -Jenkins中构建执行器的数量(在主/从上):3 -UpStream作业:USJobs,此作业可以在任何构建执行器上运行 -DownStream作业:DSJobs USJob在构建步骤中有这个:回声“生日快乐詹姆斯”,完成这项工作需要5秒钟 DSJob在构建步骤中有这个:回显“詹姆斯邦德死了”,完成这项工作 需要5秒钟

  • 问题内容: 我想创建一个Jenkins作业来启动其他Jenkins作业。那将非常容易,因为Jenkins模板项目插件允许我们创建一个类型为“使用来自另一个项目的构建器”的构建步骤。但是,使我的情况更难的是,我必须在其他计算机上开始Jenkins的工作。有什么标准方法可以做到吗? 问题答案: 万一您只想触发Job的新版本,您有多种方法可以完成它 您可以使用远程访问API并触发请求以从源Job构建目标

  • 问题内容: 我要完成的工作是从分支中签出代码,将其合并到分支,构建,运行测试,如果测试成功则推送到分支。 测试应在需要的单独工作中运行。 我当前的设置如下: Job 从中检出,将其合并并构建 作业会在“ 后期制作”步骤中 触发作业(需要预先创建) 如果成功,则在 发布构建操作中推送到分支 __ 我尝试使用 Copy Artifact Plugin, 但是问题在于,在 Post构建步骤中 触发时,我

  • 问题内容: 我正在尝试编写一个Jenkins作业(例如CopyJob),该作业将复制另一个作业(在此作业中使用Multijob插件),并且还将其所有下游作业复制到新作业中。想法是要有一个Multijob作为模板,以便可以将其复制到新的Multijobs中(例如,用于特定的分支或功能)。 看到: 当手动触发“ CopyJob”时,它将使用新的SubJobs创建一个新的MultiJob: 到目前为止,

  • 我有一个Jenkins管道作业,它需要监控另一个Jerkins作业(比如JobA)当前构建,并在当前管道阶段发布状态(构建状态:成功或失败)。如何实现这一点。不会从管道作业触发作业(JobA)。它将独立运行。从管道作业中,需要获取作业A的状态。

  • 问题内容: 该设置用于构建和部署到Adobe AEM。 主构建作业从git存储库中提取,构建和打包,运行测试,然后触发应使用上游作业中已构建软件包的下游作业。 问题是下游作业失败并显示以下消息: 在我看来,由下游作业触发的某种方式的CopyArtifacts插件正在寻找错误位置的工件。正确的位置是 但是然后,它抱怨 下游作业从另一个项目复制工件,然后该生成是“触发此作业的上游生成”或“从最新完成的