【发布时间】:2019-01-17 14:37:39
【问题描述】:
我想创建允许我访问不同 YAML 结构的变量。
envFile 是包含如下数据的 YAML 文件:
ENVNAME:
MYSYS:
MYSUBSYS:
MYDETAIL:
version: 1.0.0
path: C:\wwwroot\sys
MYSYS2:
MYSUBSYS2:
version: 1.0.1
path: C:\wwwroot\sys2
重要的是MYSYS2没有MYDETAIL级别
在我正在使用的 Jenkins 管道中:
envs = readYaml file: envFile
然后我可以使用以下方法获取版本值:
verNum = envs."${environment}"."${sysName}"."${subSysName}"."${detailName}".version
但是当我想要获取 MYSYS2 的版本时,我应该使用 (no detailName):
verNum = envs."${environment}"."${sysName}"."${subSysName}".version
所以我需要变量取决于 sysName..
我想使用如下语法:
if (sysName == 'MYSYS'){
mySuperVariable = "${environment}"."${sysName}"."${subSysName}"."${detailName}"
}
else if (sysName == 'MYSYS2'){
mySuperVariable = "${environment}"."${sysName}"."${subSysName}"
}
(...)
sysVer = envs."${mySuperVariable}".version
【问题讨论】:
标签: jenkins groovy jenkins-pipeline linkedhashmap