当下游构建仍在运行时,如何使用“复制工件插件”从 Jenkins 中的上游项目复制工件?

问题描述 投票:0回答:1

我有一个 Maven 上游 Jenkins 作业,它调用下游作业并等待下游作业完成。下游作业必须复制从上游作业的工作区生成的 Maven 工件(zip 文件)。

Upstream job configuration

Downstream job configuration

在图像中,您可以看到我的上游作业“被阻止,直到触发的项目完成其构建”,并且在下游作业配置中,我尝试使用which build -“触发此构建的上游作业”来复制工件。问题是下游作业插件无法从上游作业复制工件。我假设它无法复制,因为上游作业尚未完成。

如果我使用 which build -“**从上次完成的构建的工作区复制**”,它工作正常。任何其他选项都不起作用。 copy form the workspace of last completed build

但我希望它专门复制触发作业的上游构建,因为上游作业是由 bitbucket 中的代码更改触发的,我想使用新构建的 snapshot.zip,因为它具有代码更改,并且我想测试snapshot.zip 中的这些更改。

如何实现这一目标。我是否缺少设置一些配置?任何帮助将不胜感激。

jenkins plugins bitbucket
1个回答
0
投票

这不适用于 Freestyle 作业,因为它们会在构建步骤(包括任何“阻塞”下游管道)完成后运行的构建后操作中上传工件。您的选择是:

不要堵塞上游管道。这可能会导致一些重新架构。
  1. 将工件上传到外部存储(例如 AWS S3),并将对象的 url 传递到下游管道。
  2. 将上游作业从 Freestyle 切换到管道并在触发下游作业之前上传工件。
© www.soinside.com 2019 - 2024. All rights reserved.