Groovy 如何注入从Jenkins运行参数计算的构建环境变量?

Groovy 如何注入从Jenkins运行参数计算的构建环境变量?,groovy,jenkins,Groovy,Jenkins,我了解如何使用EnvInject插件从字符串参数计算变量(参数名只是执行注入的groovy脚本中的一个未绑定变量) 我想使用一个Run参数——包含项目最新成功构建(或用户选择的任何构建)的参数,但在EnvInject插件运行时,这些参数中的任何一个都不可用 我想我需要自己编写groovy代码来检查所需的项目,并直接从模型中获取正确的构建名称——但我不能这样做,因为模型位于主节点上,而EnvinJet插件在从节点上运行……EnvinJet可以在不同的时间运行 在节点/主节点级别(启动时,始终可用

我了解如何使用EnvInject插件从字符串参数计算变量(参数名只是执行注入的groovy脚本中的一个未绑定变量)

我想使用一个Run参数——包含项目最新成功构建(或用户选择的任何构建)的参数,但在EnvInject插件运行时,这些参数中的任何一个都不可用


我想我需要自己编写groovy代码来检查所需的项目,并直接从模型中获取正确的构建名称——但我不能这样做,因为模型位于主节点上,而EnvinJet插件在从节点上运行……

EnvinJet可以在不同的时间运行

  • 在节点/主节点级别(启动时,始终可用)
  • 作业启动时,SCM步骤之前(在作业配置顶部配置)
  • SCM步骤之后(在“构建环境”部分下配置)
  • 作为构建步骤
如果希望生成参数可用,则应选择“最后一个”或“倒数第二个”选项


最后,还有另一种选择可以尝试。获取插件。这允许在SCM签出之前运行任何构建步骤(包括EnvInject)。我已经做了一个快速测试,作业参数及其值在此阶段可用。

遗憾的是,我只知道在获得运行参数后要签出哪个分支,因此在SCM步骤后运行它将无法达到目的,除非我从构建任务中下注并运行SCM签出。现在,如果run参数能让我得到所使用的git散列,请使用scm前buildstep插件选项编辑答案。这对我有用。。。。还有另一个插件。。。詹金斯真是太有趣了!