是否可以在groovy函数上设置环境变量

时间:2019-07-09 14:54:56

标签: jenkins-pipeline jenkins-groovy

我知道我可以在一个阶段的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",但变量很少,而且可读性较差)。

1 个答案:

答案 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"
}