簡體   English   中英

在jenkins2.0中從上游傳遞自由樣式/管道作業的值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM