我没有找到任何例子来说明如何做到这一点。
而不是这个
pipeline {
agent { label 'docker' }
environment {
ENV1 = 'default'
ENV2 = 'default'
}
我想这样做:
pipeline {
agent { label 'docker' }
environment {
for (env in envs) {
env.name = env.value
}
}
也许我可以在pipeline{}
指令之前生成一个Map,并以某种方式将其传递给environment{}
?我不想在一个阶段内这样做,我想在所有阶段的顶层环境指令。
1条答案
按热度按时间ig9co6j11#
根据
environment
指令文档,不可能在environment
块内执行任何代码,但是您可以通过创建自定义步骤并使用script
块更新相关环境变量以及任何用于更新包含环境值的env
字典的groovy代码来实现类似的功能。例如:
这将影响管道中所有阶段的环境参数,而不仅仅是
Prepare Environment
阶段。另一个简单的选择是在执行开始之前在管道的顶层运行类似的代码,它将具有与前一个选项相同的效果,管道本身的外观更清晰。例如: