通过构建参数将环境变量传递给管道节点
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}
变量周围的双引号而不是单引号
.
我有一个参数化管道构建,其中一个 '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}
变量周围的双引号而不是单引号
.