你好,
我们正在使用一个作业(B),在一个作业(B)中使用不同的参数调用另一个作业(C)3次。每个作业C运行用于具有不同参数的不同从站/节点。
作业B正在使用作业A中的一些工件,并且所有子作业(C)甚至应该使用这些工件。不幸的是,只有第一个触发的子作业(作业C#1)成为其本地工作空间文件夹中提供的工件。对于其他Job-C运行(#2和#3),不会复制工件。
架构:
Job A (creates the artifacts)
-->Job B (uses artifacts from A and triggers Job C, three times)
--> Job C #1 --> use artifacts for node1
--> Job C #2 --> should also use the artifacts on node2 (didnt work)
--> Job C #2 --> should also use the artifacts on node3 (didnt work)
一种解决方案可以是为所有作业c节点配置一个组,并在触发器中使用“在标签中的所有节点上执行”。但我们需要用不同的参数调用Job-C。
谢谢Steffen
答案 0 :(得分:2)
以下是包含Build Flow plugin,NodeLabel parameter plugin和Copy Artifact plugin的解决方案。
使用此解决方案,无需工作B.
作业A创建工件,无需更新此作业。
在作业C上,请这种参数(使用第二个插件):
请为您的工作C:
启用此选项添加构建步骤以复制作业A:
中的人工制品接下来,使用此流程创建新的构建流程作业:
build("Bruno job A")
parallel (
{ build("Bruno job C", NODE_NAME: "jenkins-centos-slave-01") },
{ build("Bruno job C", NODE_NAME: "jenkins-centos-slave-02") },
{ build("Bruno job C", NODE_NAME: "jenkins-centos-slave-03") }
)
并行块将在3个不同的从站上启动3次作业C.
我们可以检查相关节点上是否已执行了3个作业:
他们都得到了工作中的人工制品A :))