如何在 groovy 的 map 变量中声明 map 并在 jenkinsfile 中调用它
How to declare map in map variable in groovy and call it in jenkinsfile
我想在我的 constants.groovy 中为不同类型的环境声明 map 变量:
- 测试
- 预生产
- 产品
并且我希望每个人都拥有自己的 URL 和 Jenkins 用户凭证。
在管道本身中会有一个选择参数,用户必须在其中选择环境类型。
构建开始后,管道将知道如何拉取 URL 和 Cred 供用户选择。知道怎么做吗?首先,我认为 可以帮助
更新
我得到了问题的答案,但在上面添加了一个:
我怎么能在 map
里面做 map
呢?假设用户选择 TEST
,我希望它有 3 种类型的服务器:SQL
、SSIS
、SSRS
。
这是正确的代码吗:
Map myMap = [
TEST:[SQL_URL:'', SSIS_URL: '', SSRS_URL: ''], credential,
PREPROD:[SQL_URL:'', SSIS_URL: '', SSRS_URL: ''], credential,
PROD:[SQL_URL:'', SSIS_URL: '', SSRS_URL: ''], credential
] as ConfigObject
def props = myMap.toProperties()
props [ env.environment_type ].SQL_URL
props [ env.environment_type ].SSIS_URL
props [ env.environment_type ].credential
不确定你想要什么,但你可以在 Groovy 中声明一个地图文字,如下所示:
Map myMap = [
TEST:[ SQL_URL:'', SSIS_URL: '', SSRS_URL: '', credential:'' ],
'PRE-PROD':[ SQL_URL:'', SSIS_URL: '', SSRS_URL: '', credential:'' ],
PROD:[ SQL_URL:'', SSIS_URL: '', SSRS_URL: '', credential:'' ],
]
注意 PRE-PROD
周围的单引号
我想在我的 constants.groovy 中为不同类型的环境声明 map 变量:
- 测试
- 预生产
- 产品
并且我希望每个人都拥有自己的 URL 和 Jenkins 用户凭证。
在管道本身中会有一个选择参数,用户必须在其中选择环境类型。
构建开始后,管道将知道如何拉取 URL 和 Cred 供用户选择。知道怎么做吗?首先,我认为
更新
我得到了问题的答案,但在上面添加了一个:
我怎么能在 map
里面做 map
呢?假设用户选择 TEST
,我希望它有 3 种类型的服务器:SQL
、SSIS
、SSRS
。
这是正确的代码吗:
Map myMap = [
TEST:[SQL_URL:'', SSIS_URL: '', SSRS_URL: ''], credential,
PREPROD:[SQL_URL:'', SSIS_URL: '', SSRS_URL: ''], credential,
PROD:[SQL_URL:'', SSIS_URL: '', SSRS_URL: ''], credential
] as ConfigObject
def props = myMap.toProperties()
props [ env.environment_type ].SQL_URL
props [ env.environment_type ].SSIS_URL
props [ env.environment_type ].credential
不确定你想要什么,但你可以在 Groovy 中声明一个地图文字,如下所示:
Map myMap = [
TEST:[ SQL_URL:'', SSIS_URL: '', SSRS_URL: '', credential:'' ],
'PRE-PROD':[ SQL_URL:'', SSIS_URL: '', SSRS_URL: '', credential:'' ],
PROD:[ SQL_URL:'', SSIS_URL: '', SSRS_URL: '', credential:'' ],
]
注意 PRE-PROD