Jenkins - 如何在groovy post build步骤中读取环境变量

时间:2016-04-07 14:58:44

标签: jenkins

我正在尝试在Groovy Postbuild步骤中阅读环境变量。我能够读取传递给构建的参数值,但无法读取在Execute Windows batch command之一中设置的参数值。

在我Execute Windows batch command的一个例子中,我这样做:

SET custom_param=myValue

如果我在其他jenkins步骤/作业中使用${custom_param},它就会获得我的价值。所以我相信它有价值。我只能用groovy脚本

来获取它

我尝试过以下操作,但没有一个有效:

  • manager.envVars [' CUSTOM_PARAM']
  • build.buildVariableResolver.resolve(' CUSTOM_PARAM&#39)
  • build.getEnvironment(受听者)获得(' CUSTOM_PARAM&#39)

这里的任何帮助都很棒

3 个答案:

答案 0 :(得分:1)

(假设您没有在groovy沙箱中运行脚本)
试试下面的内容:

build = Thread.currentThread().executable
String jobName = build.project.getName()
job = Hudson.instance.getJob(jobName)
my_env_var = job.getLastBuild().getEnvironment()["YOUR_ENV_VAR"]

答案 1 :(得分:0)

在“Windows命令批处理”步骤中设置一些自定义变量时,这些变量仅在此Jenkins步骤中可用。

一旦Jenkins继续下一步,你的变量就会丢失......

如果要永久设置某些变量,可以尝试使用SETX命令: What is the difference between setx and set in environment variables in Windows?

答案 2 :(得分:0)

Groovy Post构建步骤作为单独的进程运行。它可以像普通的JVM进程一样访问环境。

您可以使用EnvInject插件作为构建步骤。构建中的后续步骤将能够通过正常的环境访问(groovy脚本中的System.env)读取此内容