Jenkins如何让自定义全局环境变量可在工作目录中正常使用
Jenkins全局自定义环境变量工作目录引用方案
你在Jenkins全局配置中添加的用户自定义环境变量,只要配置保存完成,所有任务默认可以直接读取,不需要额外导入,按以下方式使用即可:
- 路径拼接统一规则:Linux/macOS构建节点用
${自定义变量名}格式引用,Windows构建节点用%自定义变量名%格式引用 - 你需要的
bin/release/自定义变量值路径,在任务配置的路径输入框、构建命令里直接写对应格式即可,比如自定义变量名为BUILD_TAG,Linux下路径直接填bin/release/${BUILD_TAG},Windows下填bin\release\%BUILD_TAG%
有效性校验方法
如果不确定变量是否正常注入,可以在构建步骤加一行打印命令先验证:
# Linux/macOS 执行Shell步骤 echo "当前读取到的全局变量值:${YOUR_CUSTOM_VARIABLE}" # 验证路径拼接结果 ls -l bin/release/${YOUR_CUSTOM_VARIABLE}
:: Windows 执行批处理步骤 echo 当前读取到的全局变量值:%YOUR_CUSTOM_VARIABLE% dir bin\release\%YOUR_CUSTOM_VARIABLE%
流水线任务使用示例
声明式流水线中不需要重复声明全局变量,直接调用即可:
pipeline { agent any stages { stage('Package') { steps { // 单引号包裹的shell命令直接用$取值 sh 'mkdir -p bin/release/${YOUR_CUSTOM_VARIABLE}' // 双引号场景下通过env对象取值更稳妥 sh "cp output/* bin/release/${env.YOUR_CUSTOM_VARIABLE}/" } } } }
常见不生效排查点
- 确认变量配置位置:必须是在系统配置-全局属性下勾选「环境变量」后新增的键值对,才会默认注入所有任务环境;其他位置配置的变量不会全局生效
- 变量命名规范:不要用空格、中文、特殊字符,建议使用大写字母+下划线组合,避免解析异常
- 配置生效时机:全局变量保存后,仅对新触发的构建任务生效,配置保存前已经在运行中的任务不会加载新的变量值,重跑任务即可
内容的提问来源于stack exchange,提问作者Roshani
相关产品推荐
相关产品推荐

