在jenkins2.0中向上游传递自由式/管道作业的值

在jenkins2.0中向上游传递自由式/管道作业的值,jenkins,groovy,jenkins-plugins,jenkins-pipeline,Jenkins,Groovy,Jenkins Plugins,Jenkins Pipeline,以下是我的问题: 我有一份主要工作(管道工作)和一份x工作(自由泳)。在我的主要作业中,我使用以下内容构建x作业: 主作业中的代码- res = build job: 'x', parameters: [string(name: 'JOBNAME', value: string(name: 'JIRACHEF', value: "oldvalue")], quietPeriod: 2 现在,在这个作业x中,我更改了JIRACHEF参数的值,并打印以检查它是否实际更改: os.environ

以下是我的问题:

我有一份主要工作(管道工作)和一份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
}
node {
    env.value1fromx = "bull"
    env.value2fromx = "bear"
}
test1-配置:管道作业

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
}
node {
    env.value1fromx = "bull"
    env.value2fromx = "bear"
}
test2-配置:管道作业,参数化,两个参数aValue1FromX和aValue2FromX都是字符串

node {
    echo "$env.aValue1FromX"
    echo "$env.aValue2FromX"
}

-我确实看到不同的作业在不同的节点上运行。您是否将下游作业配置为参数化,并使用从上游传递的作业的名称为其提供参数?是的,就像在“编辑一号”中一样。我没有参数化第一个作业,但我用我从第一个作业传递的名称参数化了下游作业。你想让我在罚单中提供更多细节吗?请检查编辑2,它是你的例子的简单演示,但失败了。我想知道你是否尝试过这个,它对你有效?很有趣,所以你尝试了我的例子,因为它没有任何修改和适当的配置,它失败了?可能是重复的