在管道开始时循环环境指令内的环境变量列表
Loop over a list of environment variables inside the environment directive at start of pipeline
我还没有找到有关如何执行此操作的任何示例。
而不是这个
pipeline {
agent { label 'docker' }
environment {
ENV1 = 'default'
ENV2 = 'default'
}
我想这样做:
pipeline {
agent { label 'docker' }
environment {
for (env in envs) {
env.name = env.value
}
}
也许我可以在 pipeline{}
指令之前生成一个映射并以某种方式将其传递给 environment{}
?我不想在一个阶段内执行此操作,我希望在所有阶段的顶级环境指令中执行此操作。
根据 environment
指令 Documentation 不可能在 environment
块内执行 ant 代码,但是您可以通过创建自定义步骤并更新相关的使用 script
的环境变量阻止您想要更新包含环境值的 env
字典的任何 groovy 代码。
类似于:
pipeline {
agent { label 'docker' }
stages {
stage('Prepare Environment') {
steps {
script{
envParams = ['param1': 'value1','param2': 'value2']
envParams.each { key ,value ->
env[key] = value
}
}
}
}
...
}
}
这将影响 管道中所有阶段 的环境参数,而不仅仅是 Prepare Environment
阶段。
另一个简单的选项是 运行 在开始执行之前在管道的顶层添加一个类似的代码,它的效果与前一个选项相同,管道看起来更简洁本身。类似于:
ENV_PARAMS= ['param1': 'value1','param2': 'value2']
ENV_PARAMS.each { key ,value ->
env[key] = value
}
pipeline {
agent { label 'docker' }
...
}
我还没有找到有关如何执行此操作的任何示例。
而不是这个
pipeline {
agent { label 'docker' }
environment {
ENV1 = 'default'
ENV2 = 'default'
}
我想这样做:
pipeline {
agent { label 'docker' }
environment {
for (env in envs) {
env.name = env.value
}
}
也许我可以在 pipeline{}
指令之前生成一个映射并以某种方式将其传递给 environment{}
?我不想在一个阶段内执行此操作,我希望在所有阶段的顶级环境指令中执行此操作。
根据 environment
指令 Documentation 不可能在 environment
块内执行 ant 代码,但是您可以通过创建自定义步骤并更新相关的使用 script
的环境变量阻止您想要更新包含环境值的 env
字典的任何 groovy 代码。
类似于:
pipeline {
agent { label 'docker' }
stages {
stage('Prepare Environment') {
steps {
script{
envParams = ['param1': 'value1','param2': 'value2']
envParams.each { key ,value ->
env[key] = value
}
}
}
}
...
}
}
这将影响 管道中所有阶段 的环境参数,而不仅仅是 Prepare Environment
阶段。
另一个简单的选项是 运行 在开始执行之前在管道的顶层添加一个类似的代码,它的效果与前一个选项相同,管道看起来更简洁本身。类似于:
ENV_PARAMS= ['param1': 'value1','param2': 'value2']
ENV_PARAMS.each { key ,value ->
env[key] = value
}
pipeline {
agent { label 'docker' }
...
}