【问题标题】:Use and copy artifacts within one job in multiple subjobs/nodes - Jenkins在多个子作业/节点中的一项作业中使用和复制工件 - Jenkins
【发布时间】:2015-12-03 03:31:59
【问题描述】:


你好, 我们正在使用一个作业 (B),它在一个作业 (B) 中使用不同的参数调用另一作业 (C) 3 次。每个 job-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。

谢谢史蒂芬

【问题讨论】:

    标签: jenkins continuous-integration artifacts


    【解决方案1】:

    这是Build Flow pluginNodeLabel parameter pluginCopy 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 个不同的从站上启动作业 C 的 3 倍。

    我们可以检查3个作业C是否已经在相关节点上执行:

    他们都从工作 A 中获得了人工制品 :)

    【讨论】:

    • 您好布鲁诺,感谢您的快速回复。我会尝试并回复你
    • @Steffen 你有时间来测试我的解决方案吗? :)
    猜你喜欢
    • 2014-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-23
    • 2014-04-19
    • 2016-12-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多