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

从join-Jenkins的多个上游作业复制工件

汤枫涟
2023-03-14

是否可能有一个Jenkins作业被来自多个上游作业的连接插件复制工件触发?

我试图设置一个带有“钻石”作业的詹金斯配置:我的触发器运行并产生两个作业,我的叉子1和我的叉子2,它们可以同时运行并花费不同的时间,而加入插件会同时启动我的加入作业叉子已完成。

my-触发器、my-fork1和my-fork2中的每一个都创建和指纹工件(例如,文本文件)。

我想使用“从另一个项目复制工件”工具,将“哪个构建”参数设置为“触发此作业的上游构建”,从联接中的每个上游作业复制工件。但是,我在join的控制台中看到如下输出:

在工作区/path/to/workspace/my join中的生成计算机上远程生成

从63号“我的触发器”版本复制了1个工件

从“my-fork1”版本号63复制了1个工件

无法从以下位置找到工件副本的生成:my-fork2

工作失败了。在本例中,my-fork2首先完成,因此my-fork1触发了连接步骤。我相信这意味着我的加入只记录了my-fork1和我的触发器是上游的。如果my-fork1首先完成,那么my-fork2将启动连接,并且在尝试从my-fork1复制时作业将失败。

如果我更改配置以从构建“最新成功构建”复制工件,则构建成功,但我的触发器可能会连续运行多次,因此不能保证我的加入是加入相关工件。

如何让连接步骤从上游复制多个分叉中的工件?

注意:这个问题的第二点似乎在问同样的问题,但唯一的答案并没有解决这个问题,并且已经被接受。

感谢张量

共有2个答案

别兴国
2023-03-14

Jason Swager提供的解决方案的逐步设置:

项目依赖项:钻石-

项目“fork”:字符串参数“UNIQUE_ID”(内部未使用的唯一虚拟对象)(创建工件并存档工件)

项目diamond_ready字符串参数:UNIQUE_ID从另一个项目复制工件项目名称:fork参数过滤器:UNIQUE_ID=${UNIQUE_ID}

项目“diamond”:在其他项目上触发参数化生成要生成的项目:fork预定义参数:UNIQUE_ID=${build_TAG}连接触发器:后连接操作:在其他项目上触发参数化生成要生成的项目:diamond_ready预定义生成器参数:UNIQUE_ID=${build_TAG}

侯英达
2023-03-14

如果你的构建是参数化的,对于每个运行的连接菱形都有一个唯一的参数,你可以在Copyartiact插件中使用这个参数来确定从哪个构建复制。您需要指定“最新成功构建”,并用参数和值对其进行限定。

我工作的地方也有类似的情况;连接菱形的多个同时运行。构建中的参数允许下游作业从上游作业获取正确的工件。

 类似资料:
  • 问题内容: 是否可以通过多个上游作业的Join插件复制工件触发Jenkins作业? 我正在尝试使用“钻石”作业来设置Jenkins配置:my-trigger运行并产生两个作业,my-fork1和my- fork2,它们可以同时运行并且花费不同的时间,并且Join一旦两个分支完成,插件就会启动作业my-join。 my-trigger,my-fork1和my-fork2中的每一个都创建并指纹工件(例

  • 问题内容: 有一个由开发团队控制的工作,该工作内置在另一个节点中。我在测试团队中,他们希望采用工件并在测试设备上进行部署。 我可以看到来自dev的那些工件存储在dev节点中的某个路径中。这是否意味着它必须先在Jenkins master中存档,然后才能将其复制到我的工作中?我正在使用复制工件插件并不断收到错误 *一些新手问题,因为我刚从TeamCity搬到 问题答案: 您可能要使用:复制Artif

  • 我对 jenkins (2.74) 在归档 maven 项目中的工件时究竟在做什么有点困惑。从日志中可以看出,jenkins 正在自动存档项目中的工件,而无需指定生成后操作。工件文件确实在

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

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

  • 我是詹金的新手,我在比特桶里有4个回购,比如甲、乙、丙、丁。我必须去拿甲、乙 在Jenkinsfile中添加了上面的脚本,我将其放在repo中。 现在,我已经创建了一个多分支管道来获取所有和分支内的源- 我在源代码管理方面创造了自由式的新工作- 任何帮助都很感激。