在Jenkins中无法从脚本内容接收参数到预定义参数

时间:2016-08-18 10:41:35

标签: jenkins jenkins-plugins

我想将在脚本内容中声明的主机名参数传递给构建其他项目的触发器/调用中的预定义参数,其中我的子项目将从中接收参数父项目。我的代码在脚本内容中如下所示:

`machine_name="$(hostname)"`

因此,为了将我的参数传递给我声明的子项目:

host_name=${machinename}

脚本内容中的

。但是,当我签入我的子项目时,它显示为 $ {machinename} ,这不是我想要的。可以有人告诉我我错过了什么或者我做错了什么步骤或者有没有办法执行此操作?

2 个答案:

答案 0 :(得分:2)

尝试使用ENv Inject plugin,您只需要执行以下操作:

您的脚本应包含以下步骤:

machine_name="$(hostname)" > inject.txt

现在使用Inject环境变量构建步骤并在

  

属性文件路径给出inject.txt

使用的是什么?

通过此步骤,现在您的machine_name变量在整个作业中保存主机名值。

接下来,在构建其他项目的触发器/调用中的参数

host_name=${machine_name}

在子作业中使用相同的变量。

我认为上面不需要多次作业,但你仍然可以试试这个。

答案 1 :(得分:0)

'_'丢失了。 host_name=$machine_name。 您无法从脚本o / p设置或传递参数值。要么使用groovy将其设为env变量,要么将其设置为属性文件&读取。