如何在Jenkins Pipeline构建中的构建中保留环境?

时间:2016-01-28 19:45:43

标签: jenkins jenkins-workflow

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

我的印象是Jenkins 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)

如何实现理想的行为?

1 个答案:

答案 0 :(得分:1)

您的变量正在存储,但我认为不是可以通过您调用的API访问。通过构建REST导出,或通过Java中的EnvAction导出,或者在上游管道构建中以.buildVariables导出,调用build步骤。