从 jenkins2.0 上游的 freestyle/pipeline 作业传递值
pass values from a freestyle/pipeline job upstream in jenkins2.0
这是我的简化问题:
我有一份主要工作(流水线工作),还有一份工作(自由泳)。在我的主要工作中,我使用以下方法构建 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"
}
这是我的简化问题:
我有一份主要工作(流水线工作),还有一份工作(自由泳)。在我的主要工作中,我使用以下方法构建 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"
}