[英]pass values from a freestyle/pipeline job upstream in jenkins2.0
這是我簡化的問題:
我有一份主要工作(管道工作),有x份工作(自由式)。 在我的主要工作中,我使用以下命令構建x任務:
主要工作中的代碼-
res = build job: 'x', parameters: [string(name: 'JOBNAME', value: string(name: 'JIRACHEF', value: "oldvalue")], quietPeriod: 2
現在,在此作業x中,我更改了JIRACHEF參數的值,並打印以檢查其是否實際更改。
os.environ["JIRACHEF"] = "newvalue"
print os.environ["JIRACHEF"]
這適用於作業x控制台輸出。 我認為根據提出的解決方案,此更新的值現在應該在主作業中可用,因此在構建x之后,在主作業中執行以下操作:
res = build job: 'x', parameters: [string(name: 'JOBNAME', value: string(name: 'JIRACHEF', value: "oldvalue")], quietPeriod: 2
print "$res.buildVariables"
應該打印“ newvalue”但打印“ oldvalue”,因此讓我相信它實際上沒有將值傳遞給上游。
注意-我意識到我的工作x是自由式的,但是我也通過使x管道工作並且仍然得到相同的結果-'oldvalue'嘗試了上述解決方案
主要工作-配置:管道工作
node {
x = build job: 'test1', quietPeriod: 2
build job: 'test2', parameters: [
string(name: 'aValue1FromX', value: "$x.buildVariables.value1fromx"),
string(name: 'aValue2FromX', value: "$x.buildVariables.value2fromx")
], quietPeriod: 2
}
test1-配置:管道作業
node {
env.value1fromx = "bull"
env.value2fromx = "bear"
}
test2-配置:管道作業,參數化,兩個參數aValue1FromX和aValue2FromX均為字符串
node {
echo "$env.aValue1FromX"
echo "$env.aValue2FromX"
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.