Jenkins-如何在groovy后期构建步骤中读取环境变量

Jenkins-如何在groovy后期构建步骤中读取环境变量,jenkins,Jenkins,我试图在步骤中读取环境变量。我能够读取传递给生成的参数值,但无法读取在我的执行Windows批处理命令中设置的参数值 在执行Windows批处理命令的一个示例中,我执行以下操作: SET custom_param=myValue 如果我在其他jenkins步骤/作业中使用${custom_param},它将获得我的值。所以我相信它是有价值的。我就是不能在groovy脚本中得到它 我尝试过以下方法,但没有一种有效: manager.envVars['custom_param'] build.b

我试图在步骤中读取环境变量。我能够读取传递给生成的参数值,但无法读取在我的
执行Windows批处理命令中设置的参数值

在执行Windows批处理命令的一个示例中,我执行以下操作:

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

我尝试过以下方法,但没有一种有效:

  • manager.envVars['custom_param']
  • build.buildVariableResolver.resolve('自定义参数')
  • build.getEnvironment(listener.get('custom_param'))

当您在“Windows命令批处理”步骤中设置一些自定义变量时,此处的任何帮助都将非常有用,这些变量仅在该步骤中可用

一旦Jenkins进入下一步,您的变量就会丢失

如果要永久设置某些变量,可以尝试使用
SETX
命令: (假设您没有在groovy沙盒中运行脚本)
试试下面的吼叫:

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

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


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

您是在执行“groovy脚本”还是“System groovy脚本”?显然groove脚本无法访问环境变量。更多信息:尝试在另一批中重复,它通常不起作用。检查EnvInject插件是否有帮助。