我有一个参数化的管道构建,其中包含一个' 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
有没有办法扩展作为构建参数传递的环境变量?这在非管道构建作业中正确扩展。
答案 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}
变量