是否有可能通過來自多個上游作業的Join插件副本工件觸發Jenkins作業?在Jenkins中複製來自多個上游作業的工件
我試圖建立一個帶有「鑽石」作業的Jenkins配置:my-trigger運行並生成兩個作業,my-fork1和my-fork2,它們可以同時運行並花費不同的時間,並且一旦兩個叉都完成,Join插件會啓動my-join作業。
my-trigger,my-fork1和my-fork2中的每一個都會創建和指紋工件(如文本文件)。
我想使用「複製來自其他項目的工件」工具,並將「哪個構建」參數設置爲「觸發此作業的上游構建」,從my-join中的每個上游作業中複製工件。但是,我看到這樣的輸出的控制檯我的聯接:
建設遠程集結機工作區/路徑/到/工作區/從「我 - 我 - 加入
複製1個神器我-與fork1 「集結號63
無法找到一個構建從神器副本觸發」從建號63
複製1個神器」:我-fork2
並且作業失敗。在這種情況下,my-fork2首先完成,因此my-fork1觸發了連接步驟。我相信這意味着my-join只有my-fork1和my-trigger的記錄爲上游記錄。如果my-fork1首先完成,那麼my-fork2會啓動連接,並且嘗試從my-fork1複製時作業失敗。
如果我更改配置以從構建「最新成功構建」中複製構件,那麼構建成功,但my-trigger可能會連續運行多次,因此不能保證my-join會加入相關構件。
如何獲取聯接步驟以從多個叉上游複製工件?
注意:第二點this question似乎是要求同樣的事情,但唯一的答案沒有解決它,並已被接受。
感謝 張量積
啊,感謝。最後,我使用觸發構建的BUILD_TAG設置所有下游構建的UNIQUE_ID參數,並將其用作加入步驟的標識標記。 – laffoyb
你能提供確切的字符串使用,以實現這一目標嗎?我遇到問題... – dstj
恐怕我不在我將此修復程序放置到位的地方工作,所以我沒有準確的字符串。爲了我的記憶,我使用了Parameterized Trigger Plugin來啓動下游構建。我使用'UNIQUE_ID = $ {BUILD_TAG}'手動設置了一個參數。 – laffoyb