一尘不染

在Jenkins构建步骤(Windows)中从groovy脚本访问构建环境变量

jenkins

我正在使用Scriptler插件,因此可以在构建步骤中运行groovy脚本。我的Jenkins奴隶正在服务模式下的Windows上运行。使用脚本编辑器,我不需要使用Windows批处理脚本。

但是我很难在构建步骤中获取环境变量。

System.getenv("BASE")

哪里BASE是将env-瓦尔对詹金斯启动部分。但是,我想得到

%JOB_NAME%

如果要添加“执行Windows批处理命令”构建步骤:

echo %JOB_NAME%

有用。如果要添加具有相同设置的脚本程序脚本作为构建步骤:

println "JOB_NAME: " + System.getenv("JOB_NAME")

我越来越:

JOB_NAME: null

那么,如何在构建步骤中从groovy脚本中获取注入的环境变量?


阅读 447

收藏
2020-07-25

共1个答案

一尘不染

Scriptler Groovy脚本似乎无法获取构建的所有环境变量。但是您可以执行的是强制将它们作为脚本的参数输入:

  1. 当您将Scriptler构建步骤添加到您的工作中时,选择选项“定义脚本参数”

  2. 为要传递的每个环境变量添加一个参数。例如,“名称:JOB_NAME”,“值:$ JOB_NAME”。该值将使用’$ envName’类型变量从Jenkins构建环境中扩展,根据我的经验,作业配置设置中的大多数字段都支持这种扩展。

  3. 在脚本中,您应该有一个与参数同名的变量,因此您可以通过以下方式访问参数:

println“ JOB_NAME = $ JOB_NAME”

除了进行一些实验外,我还没有使用Sciptler,但是您的问题提出了一个有趣的问题。我希望这有帮助!

2020-07-25