Jenkinsfile中environment块变量无法在stage块访问问题排查
Jenkinsfile环境变量输出null的问题解决
问题根源:你在script块里直接给
var1、var2赋值,这其实是创建了script块内的局部变量,根本没修改environment块声明的全局环境变量。第二个stage读取的还是environment里初始化的空值,所以输出null。修复方法:修改script块里的赋值语句,加上
env.前缀,明确指向全局环境变量:
pipeline{ agent{node{label ...}} environment{ var1="" var2="" } stages{ stage("初始化变量"){ steps{ script{ env.var1 = "some string" env.var2 = "another string" } } } stage("输出变量"){ steps{ echo "${var1}" echo "${var2}" } } } }
- 补充说明:声明式流水线中,environment块定义的变量属于全局环境变量,必须通过
env.前缀才能在script块里修改。直接赋值会创建局部变量,作用域仅限当前script块,出了这个块就失效了,自然后续stage读不到正确值。
内容的提问来源于stack exchange,提问作者108
相关产品推荐
相关产品推荐

