首页/开发/CI/CD 与发布速查/Jenkins environment 与 withEnv
工具链要点63 条

Jenkins environment 与 withEnv

在流水线或阶段声明环境变量:environment 块集中定义,withEnv 在块内临时覆盖;常与凭据绑定配合使用。

CI/CD 与发布速查开发更新于 2026-10-12
声明式environment { KEY = 'value' }
临时覆盖withEnv([...]) { ... }
凭据credentials('id') 注入到变量
作用域块结束即恢复

变量与临时覆盖

变量与临时覆盖
pipeline {
  agent any
  environment {
    REGISTRY = 'registry.example.com'
  }
  stages {
    stage('push') {
      steps {
        withEnv(["TAG=${env.BUILD_NUMBER}"]) {
          sh 'docker push "$REGISTRY/app:$TAG"'
        }
      }
    }
  }
}
把构建编号拼进镜像标签是常见做法:env.BUILD_NUMBER 等内置变量可直接引用。

易错点

  • 变量名与内置变量冲突:覆盖内置值引发难查问题
  • 字符串引号边界出错:先在本地验证再进共享库

数据来源与参考

  • Jenkins 手册《Pipeline Syntax》(environment)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌