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

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)

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

Pom*_*m12 6

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

但是,这很可能是由于不正确的字符串插值造成的。在 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}变量周围的双引号而不是单引号。

  • 所以父工作是自由式工作,对吗?不过,上下文在这里很重要,请提供一段代码或父工作调用的屏幕截图 (2认同)