我需要根据多个分支在 Jenkinsfile 中设置一些属性。目前我正在使用以下代码行来完成此任务:
if (BranchType == 'dev') {
env.ID='env123'
} else if (BranchType == 'beta') {
env.ID='envbeta12'
} else if (BranchType == 'rel') {
env.ID='envrel45'
} else {
env.ID='test'
}
我想知道,还有其他聪明的方法来处理这种情况吗?
您所拥有的是最灵活的形式,但如果您绝对确定您只需要匹配字符串:
def mapBranchToId = [
'dev': 'env123',
'beta': 'envbeta12',
'rel': 'envrel45',
]
env.ID = mapBranchToId.get(branchType) ?: 'test'
也许将其变成一个函数以保持地图和默认值接近。或者,如果您希望将来匹配正则表达式,则可以使用
switch
:
def mapBranchToId(branchType) {
switch(branchType) {
case 'dev':
return 'env123'
case 'beta':
return 'envbeta12'
case 'rel':
return 'envrel45'
default:
return 'test'
}
}