我今天將Jenkins從1.618升級到2.3。這包括安裝它推薦的大量插件(主要是Pipeline插件及其依賴項)。預定義的參數不再傳遞給子作業
自升級以來,任何時候任何工作開始另一項工作時,我都會收到一個新錯誤(或者至少是一個新的不需要的行爲)。除非子作業已經定義了這些鍵,否則將任何傳遞給子作爲「預定義參數」的值都將被忽略。
讓我說明一下:假設我有一個parent
作業和一個child
作業。
Parent
通過「觸發參數化構建其他項目」後發佈操作啓動child
。在該生成後操作的定義中,在「預定義參數」下,我定義了FOO=BAR
。
在Jenkins 1.618中,當child
以這種方式觸發時,它將FOO
設置爲參數,其值爲BAR
。
但是在2.3中,FOO
沒有設置在child
的構建版上。
如果我修改child
使FOO
始終是工作的一個參數,它會再從parent
拿起FOO=BAR
集。這是一個無法接受的解決方法,因爲我們以這種方式傳遞了許多參數,並且在兩端定義它們太脆弱並且違反了「不要重複自己」的原則。
無論我是通過「其他項目上的觸發器參數化構建」後構建操作還是通過MultiJob項目的MultiJob階段觸發子作業,我都可以得到相同的結果。
這是預期的改變嗎?之前是否破碎,我們只是錯誤地使用它?或者這是一個錯誤?
這聽起來像它涉及到最新的[詹金斯安全更新(https://開頭詹金斯.IO /博客/ 2016/05/11 /安全更新/)。 –
它確實如此。謝謝! – PortMan