如何正确使用EnvInject Jenkins插件?

问题描述:

工作流程,我想创建如何正确使用EnvInject Jenkins插件?

  1. “壳牌执行人”写变量build.properties文件。
  2. EnvInject插件读取build.properties将它们注入为环境变量,因此可以在作业中的任何地方使用它们。 job config

我不是这样的例外:

[EnvInject] - Loading node environment variables. 
Building remotely on master-worker (lucid) in workspace /data/jenkins/workspace/QA-350_MultiJob 
[QA-350_MultiJob] $ /bin/sh -xe /tmp/hudson757569632298940894.sh 
+ curl --user **** -X POST --header Content-Type: application/json --header Accept: */* -d { 
    "description": "string", 
    "mode": "DEFAULT", 
    "name": "string", 
    "start_time": "2015-11-05T13:26:40.626Z", 
    "tags": [ 
    "string" 
    ] 
} https://**** 
+ jq .id 
    % Total % Received % Xferd Average Speed Time Time  Time Current 
           Dload Upload Total Spent Left Speed 

    0  0 0  0 0 144  0 286 --:--:-- --:--:-- --:--:-- 286 
    0 33 0 33 0 144  49 215 --:--:-- --:--:-- --:--:--  0 
+ ID = "563c8d3ae4b0bf061cd3d999" 
/tmp/hudson757569632298940894.sh: 1: ID: not found 
Build step 'Execute shell' marked build as failure 
Finished: FAILURE 
+1

虽然@freebourn有很好的建议,但实际的错误显示'ID = $(...)'失败,因为在shell中,在一个赋值中不应该有空格:'ID = $(...) ' –

+0

下一次,请给我们失败的代码(不是它的图像,一些关键细节被遮住)。 – Arran

您不需要在“属性内容”添加任何东西,只要在“属性文件路径”你都指向该文件包含变量分配(例如ID = 123)。

  • 验证由shell脚本创建的工作空间中的文件是否包含变量赋值。
  • 清除“属性内容”框。
  • 您可以从“属性文件路径”中删除$ WORKSPACE - 默认情况下,它与作业的工作区相关。

你应该把文件中的变量加载到作业环境中。