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

Pass environment variables through build parameters to pipeline node

我有一个参数化管道构建,其中一个 '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

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

您没有显示调用此管道的脚本或作业。

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

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

有:

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

在您的调用管道中。同样,唯一的区别是 ${WORKSPACE} 变量周围的双引号而不是单引号 .