通过构建参数将环境变量传递给管道节点

时间:2017-02-07 21:27:13

标签: jenkins groovy jenkins-pipeline

我有一个参数化的管道构建,其中包含一个' String'参数BuildOutDir,其值为${WORKSPACE}/out/

我的管道脚本是:

node ('windows') {
    stage ('Test') {
        echo "$WORKSPACE"
        echo "$BuildOutDir"
        }
}

输出是:

[Pipeline] stage
[Pipeline] { (Test)
[Pipeline] echo
D:\jenkins\workspace\test_pipeline
[Pipeline] echo
${WORKSPACE}\out\
[Pipeline] }
[Pipeline] // stage

有没有办法扩展作为构建参数传递的环境变量?这在非管道构建作业中正确扩展。

1 个答案:

答案 0 :(得分:4)

您不会显示调用此管道的脚本或作业。

但是,很可能是由于string interpolation不正确。在groovy中,您需要使用双引号,以便变量得到插值(=替换)。如果您使用简单引用,则不会解释param字符串,也不会替换您的工作区变量。所以基本上你要做的就是替换以下行:

build job: 'yourPipeline', parameters: [string(name: 'BuildOutDir', value: '${WORKSPACE}')]

使用:

build job: 'yourPipeline', parameters: [string(name: 'BuildOutDir', value: "${WORKSPACE}")]

在您的通话管道中。同样,唯一的区别是双引号而不是单引号a ${WORKSPACE}变量