我知道我可以在一个阶段的jenkins管道(声明性)上创建一个环境部分。 像这样:
stage('Name') {
environment {
NAME = value
}
steps {
script {
Do something using these env vars
}
}
}
我想编写一个groovy函数,定义一些env var,并运行某些东西,然后从几个管道中调用它。 像这样:
def function () {
environment {
NAME = value
}
sh "do something using these env vars"
}
有可能吗?
(我知道我可以写sh "ENV=value; some CMD"
,但变量很少,而且可读性较差)。
答案 0 :(得分:1)
是的,您可以这样做。 Jenkins Pipeline将其环境变量存储在名为ENV
的地图中。因此,可以将其他键值对添加到此映射以获取其他环境变量。这将通过以下方式以Groovy语法完成:
// syntax option one
env.key = value
// syntax option two
env['key'] = value
以您的示例为例,
def function () {
env.NAME = value
sh "do something using these env vars"
}