是否可以让来自多个上游作业的加入插件复制工件触发 Jenkins 作业?
我正在尝试使用“钻石”作业设置 Jenkins 配置:my-trigger 运行并生成两个作业,my-fork1 和 my-fork2,它们可以同时运行并花费不同的时间,而 Join一旦两个分叉都完成,插件就会启动 my-join 工作。
my-trigger、my-fork1 和 my-fork2 中的每一个都会创建和识别工件(例如,文本文件)。
我想使用“从另一个项目复制工件”工具从 my-join 中的每个上游作业复制工件,并将“哪个构建”参数设置为“触发此作业的上游构建”。但是,我在 my-join 的控制台中看到这样的输出:
在工作区 /path/to/workspace/my-join 中的 build-machine 上远程构建
从“my-trigger”版本号 63 复制了 1 个工件
从“my-fork1”版本号 63 复制了 1 个工件
无法从以下位置找到工件副本的构建:my-fork2
工作失败了。在这种情况下,my-fork2 先完成,所以 my-fork1 触发了 join 步骤。我相信这意味着 my-join 仅将 my-fork1 和 my-trigger 记录为上游。如果 my-fork1 先完成,则 my-fork2 开始加入,并且在尝试从 my-fork1 复制时作业失败。
如果我更改配置以从构建“最新成功构建”复制工件,则构建成功,但 my-trigger 可能会连续运行多次,因此无法保证 my-join 正在加入相关工件。
如何获得连接步骤以从上游的多个分叉复制工件?
注意:这个问题的第二点似乎在问同样的事情,但唯一的答案没有解决它,并且已被接受。
感谢张量产品