new*_*bie 3 groovy jenkins jenkins-pipeline
我有一个参数化管道构建,其中包含一个BuildOutDir值为 的“字符串”参数${WORKSPACE}/out/。
我的管道脚本是:
node ('windows') {
stage ('Test') {
echo "$WORKSPACE"
echo "$BuildOutDir"
}
}
Run Code Online (Sandbox Code Playgroud)
输出是:
[Pipeline] stage
[Pipeline] { (Test)
[Pipeline] echo
D:\jenkins\workspace\test_pipeline
[Pipeline] echo
${WORKSPACE}\out\
[Pipeline] }
[Pipeline] // stage
Run Code Online (Sandbox Code Playgroud)
有没有办法扩展作为构建参数传递的环境变量?这在非管道构建作业中正确扩展。
您不会显示调用此管道的脚本或作业。
但是,这很可能是由于不正确的字符串插值造成的。在 groovy 中,您需要使用双引号来插入变量(= 替换)。如果您改为使用简单引号,则不会解释 param 字符串,也不会替换您的工作区变量。所以基本上你想要做的是替换以下行:
build job: 'yourPipeline', parameters: [string(name: 'BuildOutDir', value: '${WORKSPACE}')]
Run Code Online (Sandbox Code Playgroud)
和 :
build job: 'yourPipeline', parameters: [string(name: 'BuildOutDir', value: "${WORKSPACE}")]
Run Code Online (Sandbox Code Playgroud)
在您的调用管道中。同样,唯一的区别是${WORKSPACE}变量周围的双引号而不是单引号。