You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins流水线环境变量无法传递至下游任务的解决求助

解决Jenkins流水线变量传递至下游任务的问题

核心原因

流水线environment块定义的PIPELINE_NAME属于流水线上下文的变量,即便开启「Keep Jenkins Environment Variables」,下游任务的properties_content在解析时也无法直接识别该变量——因为properties_content的变量解析逻辑优先读取任务自身的参数或全局变量,而非上游流水线的环境变量。

具体解决步骤

  1. 在流水线中显式传递参数
    调用下游任务时,通过build步骤的parameters参数把PIPELINE_NAME主动传过去,示例代码:

    pipeline {
        agent any
        environment {
            PIPELINE_NAME = 'foo-pipeline'
        }
        stages {
            stage('调用下游任务') {
                steps {
                    build job: '你的下游任务名称',
                          parameters: [
                              string(name: 'PIPELINE_NAME', value: env.PIPELINE_NAME)
                          ]
                }
            }
        }
    }
    
  2. 给下游任务添加对应参数
    进入下游任务的配置页面,添加一个字符串类型参数,名称设为PIPELINE_NAME(和流水线传递的参数名完全一致),默认值可留空。

  3. 修改properties_content配置
    现在在下游任务的properties_content里直接用${PIPELINE_NAME}就能获取到流水线传递的实际值了,示例配置:

    JenkinsJobName=foo
    JenkinsBuildNumber=${BUILD_NUMBER}
    PIPELINENAME=${PIPELINE_NAME}
    

额外说明

如果下游任务是通过其他插件(比如Publish Over SSH)调用批处理,也要确保在插件配置中选择引用任务参数PIPELINE_NAME,而非直接写流水线的环境变量名。

内容的提问来源于stack exchange,提问作者user3711142

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 00:22:11