如何正确使用EnvInject Jenkins插件?

时间:2015-11-06 11:40:08

标签: jenkins

我想创建的工作流程

  1. ' Shell Executors'将变量写入build.properties文件。
  2. EnvInject插件读取build.properties将它们作为环境变量注入,因此可以在作业中的任何位置使用它们。 job config
  3. 我得到了这样的例外:

    [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
    

2 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分:4)

对此表示欢迎,并且遇到了非常类似的问题。

出现相同的错误消息,通知我未找到我尝试创建的变量名(此问题的通知正在尝试创建名为ID的变量,并且该错误告诉我们“未找到ID”)

如果您删除“ ID = $ {curl”周围的空格,它将解决此问题。

shell脚本中的变量创建不需要使用空格。 示例:MY_VARIABLE =“我的值”