1
對於我們的jenkins管道環境,我們正在實現一個函數庫。 我們想在多個節點上使用這個庫。對於某些日誌記錄功能,我正在尋找一種具有「節點範圍」變量的方法。Jenkins管道變量,節點範圍
這意味着庫功能(在最小的例子下面說())應該具有取決於所述節點
g_str_test = "test"
parallel firstBranch: {
node {
echo g_str_test // = test
l_str_test = "para1"
echo l_str_test
sleep 2
l_str_test = "paraaaa11"
g_str_test = "para1"
say() // = paraaaa11
}
}, secondBranch: {
node {
echo g_str_test
l_str_test = "para2"
echo l_str_test // = para2
sleep 5
echo "l: "+l_str_test // should be para2 !!!!!! (but is paraaaa11)
echo "g: "+g_str_test //= para1
say() // = para2 !!!!!!
}
},
failFast: true
def say(){
echo "say: "+l_str_test
}
上的不同的輸出是有辦法有常規變量具有限定的範圍
當使用「DEF l_str_test」爲l_str_test未在發言權()已知每個節點node{
[VALID HERE -- also known in called functions]
}
[UNKNOWN HERE]
我知道一個解決辦法是在調用噸時只通過可變他的功能。但實際上,我必須將許多變量傳遞給每個函數,這會使代碼看起來非常難看。
。問題在於,它不能在節點內部調用的函數中工作(不是沒有傳遞變量) – Ditschi