如何在Jenkins管道构建内的构建中持久化环境?

如何在Jenkins管道构建内的构建中持久化环境?,jenkins,jenkins-workflow,Jenkins,Jenkins Workflow,我需要在它的环境变量中保存一些构建信息,就像我以前在一个POFP(简单的旧自由式项目)中使用EnvInject操作所做的那样。 目的是能够在其他工作中阅读它们 我的印象是,在詹金斯管道中,这是开箱即用的 比如说,我有这个管道代码: AAA = '123' env.BBB = '123' def CCC = '123' node('local_devkit'){ DDD = '123' env.EEE = '123' } 我做了这项工作,并得到了一个建设。然后,我尝试从Jenk

我需要在它的环境变量中保存一些构建信息,就像我以前在一个POFP(简单的旧自由式项目)中使用EnvInject操作所做的那样。 目的是能够在其他工作中阅读它们

我的印象是,在詹金斯管道中,这是开箱即用的

比如说,我有这个管道代码:

AAA = '123'
env.BBB = '123'
def CCC = '123'

node('local_devkit'){
    DDD = '123'
    env.EEE = '123'
}
我做了这项工作,并得到了一个建设。然后,我尝试从Jenkins Groovy控制台访问其环境:

b = Jenkins.instance.getItem('test').getBuildByNumber(1)
println b.environment
println b.envVars
我可以看到一些自动变量,比如BUILD\u NUMBER或JOB\u URL。 问题是我想访问在作业运行时创建的自定义变量:AAA、BBB、,。。。等等,从我的例子

即使是添加新参数的技巧也无济于事,因为Jenkins管道中的参数访问方式不同

pa = new ParametersAction([
    new StringParameterValue("QWERTY", 'AAAA')
])
currentBuild.rawBuild.addAction(pa)

如何实现所需的行为?

您的变量正在存储中,尽管我认为无法通过您调用的API访问。通过build REST导出,或通过Java中的
EnvAction
导出,或作为上游管道构建中的
buildVariables
导出,调用
build
步骤。

感谢您的指导,我研究了Jenkins管道代码,最后创建了这个代码片段来打印整个构建环境,包括全局变量(它对工作流和常规构建都有效):
b=Jenkins.instance.getItem('test').getBuildByNumber(15);rw=new org.jenkinsci.plugins.Workflow.support.steps.build.RunWrapper(b,false);println rw.rawBuild.environment+rw.buildVariables
。我可以依赖这种方法吗?如果可以,我将用详细的答案更新这个问题。