我想要实现的是:用户将选择一个环境,然后我可以为该环境(URL,DB等)设置适当的环境变量。 可能吗? 我尝试了很多东西:在环境中进行插值,尝试在不同的地方定义环境地图但没有运气。 我的环境映射变量在环境部分是不可访问的,并且在环境部分内部可以做什么似乎也有一些限制,我得到了以下消息: 你只能用+连接,env var只能是值或函数调用。 我试着用这些提示做了一些修改,但仍然没有运气。
def environments = [
TEST: [APP_URL: 'http://test'],
DEV: [ APP_URL: 'https://dev'],
QA: [ APP_URL: 'https://qa']
]
pipeline {
agent any
parameters {
choice(name: 'environment', choices: "${environments.keySet().join('\n')}")
}
stages {
stage ('Test') {
environment {
APP_URL = environments[params.environment]['APP_URL']
}
steps {
sh 'env'
}
}
}
}
答案 0 :(得分:1)
这有效:)
def environments = [
TEST: [APP_URL: 'http://test'],
DEV: [ APP_URL: 'https://dev'],
QA: [ APP_URL: 'https://qa']
]
pipeline {
agent any
parameters {
choice(name: 'environment', choices: "${environments.keySet().join('\n')}")
}
stages {
stage ('Test') {
steps {
sh """
export APP_URL=${environments[params.environment]['APP_URL']}
env
"""
}
}
}
}