假设我有以下下游工作:
// DOWNSTREAM JOB
DYNAMIC_VAR = ""
parallel(
{
DYNAMIC_VAR = new Date() // Some other value determined
// at runtime by this job
},
{
// Some other stuff...
}
)
作为我的上游工作的一部分(参见下面的示例),我希望能够调用下游作业,并访问在下游作业期间设置的变量。
// UPSTREAM JOB
my_build = build("my-custom-job")
// Would like to beable to do something like
// out.println my_build.build.get_var('DYNAMIC_VAR')
// or
// out.println my_build.build.DYNAMIC_VAR
查看输出似乎没有返回变量,因此无法访问。我怀疑这是因为有问题的变量(DYNAMIC_VAR)仅在下游作业的范围内可用,因此一旦作业完成,变量就被删除。
我想问的两个问题是:
答案 0 :(得分:0)
1)将变量=值对输出到某个文件是否是可接受的解决方案?
2)我没有在Jenkins中使用过groovy,但所有作业的环境变量都存储在:
${JENKINS_HOME}/jobs/${JOB_NAME}/builds/${BUILD_NUMBER}/injectedEnvWars.txt
这可能需要EnvInject plugin,也可能不需要{。}}。
答案 1 :(得分:0)
根据这里的评论:https://issues.jenkins-ci.org/browse/JENKINS-18784
您可以执行以下操作:
// – In job First, I am setting the environment variable testKey
b = build( "First" )
// Then, using it in workflow:
out.println b.build.properties.environment['testKey']
// Or
b.build.properties.environment.testKey