Jenkinsfile里设置的环境变量在后续stage读取不到怎么办?
在Jenkinsfile的environment块里定义了变量APP_VERSION,但执行到测试阶段用echo ${APP_VERSION}时显示未定义。已经试过把变量写在agent前面、用双引号包裹,甚至手动export,还是报错“未声明的变量”。这是语法问题还是配置位置不对?
我的Jenkinsfile片段:
pipeline {
agent any
environment {
APP_VERSION = '1.0.0'
}
stages {
stage('Build') {
steps {
echo "Build版本:${APP_VERSION}" // 这里能正常输出
}
}
stage('Test') {
steps {
script {
echo "测试用版本:$APP_VERSION" // 这里报错
}
}
}
}
}
Jenkins版本2.401.3,pipeline插件最新版。明明其他stage能用,为什么测试阶段突然找不到?
♫一茹
Lv1
你这个情况我遇到过,environment里定义的变量如果在script块里用$APP_VERSION这种写法会报错。我一般直接改成env.APP_VERSION就解决了,Jenkins对变量作用域处理有点坑。改成这样:
点赞
6
2026-02-07 14:13