我需要将一些构建信息持久化到其环境变量中,就像在POFP(普通老式自由样式项目)中使用EnvInject动作之前所做的那样。
目的是能够在其他作业中读取它们。
我以为在Jenkins Pipeline中,这个功能已经内置了。
比如说,我有这段Pipeline代码:
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_NUMBER或JOB_URL。 问题是我想从我的示例中访问在作业运行时创建的自定义变量:AAA,BBB等。 即使使用添加新ParametersAction的技巧也无济于事,因为在Jenkins管道中访问参数方式不同。
pa = new ParametersAction([
new StringParameterValue("QWERTY", 'AAAA')
])
currentBuild.rawBuild.addAction(pa)
我该如何实现所需的行为?
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
。我能依赖这种方法吗?如果可以,我将用详细的答案更新问题。 - izzekil