Jenkins Pipeline跨流水线传递与引用参数问题咨询
Jenkins 多级流水线参数传递与引用问题解决
问题根源与修正步骤
1. 修复触发二级流水线的参数拼写错误
你当前的触发代码里存在拼写错误:paramters → parameters,这个错误会导致参数根本无法传递到二级流水线,是核心问题。
修正后的触发代码:
script{ build job: 'Docker-Pipeline', parameters: [string(name: 'source_branch', value: String.valueOf(BRANCH_NAME))] }
2. 正确在二级流水线中引用参数
Jenkins Pipeline会自动将定义的参数注入到env环境变量中,在Shell步骤里有两种可靠的引用方式:
方式一:用Groovy双引号解析变量后传给Shell(推荐)
stage('PrintParameter'){ steps{ // 直接引用参数名,或加上env前缀更规范 sh "echo ${source_branch}" // sh "echo ${env.source_branch}" } }
方式二:直接引用Shell环境变量(Jenkins会将参数转为大写+下划线格式)
stage('PrintParameter'){ steps{ sh 'echo $SOURCE_BRANCH' } }
补充说明
你之前用sh 'echo ${source_branch}'无输出的原因是:单引号会让Groovy直接将字符串原封不动传给Shell,而Shell环境中不存在source_branch变量,因此输出为空。
内容的提问来源于stack exchange,提问作者Eidolon
相关产品推荐
相关产品推荐

