繁体   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