2015-12-02 51 views
0


您好, 我們使用一個作業(B),它調用另一個作業(C)3倍的一個作業中使用不同的參數(B) 。每個作業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。

由於斯特芬

回答

1

這裏是與Build Flow plugin,所述NodeLabel parameter pluginCopy Artifact plugin的溶液。

通過這一解決方案,無需工作B.

作業A創建了文物,無需更新此作業。

在作業C,請這樣的參數(使用第二插件):

enter image description here

請主動此選項,您的作業C:

enter image description here

添加建立從作業中複製人工製品的步驟A:

enter image description here

接下來,創建一個新的構建工作流與此流程:

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周不同的奴隸。

enter image description here

我們可以檢查3個項目ç已在相關節點上執行:

enter image description here

enter image description here

enter image description here

他們都得到了假象從工作A :)

+0

嗨布魯諾,感謝您的快速回復。我會嘗試一下,然後回到你的身邊 – Steffen

+0

好的沒問題:) –

+0

@Steffen你有沒有找時間來測試我的解決方案? :) –