如何正确使用EnvInject Jenkins插件?

Rud*_*koŭ 5 jenkins

我要创建的工作流程

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

我得到了这样的例外:

[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
Run Code Online (Sandbox Code Playgroud)

Eyt*_*ror 5

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

  • 验证外壳程序脚本在工作区中创建的文件包含变量分配。
  • 清除“属性内容”框。
  • 您可以从“属性文件路径”中删除$ WORKSPACE-默认情况下,它是相对于作业的工作空间的。

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


小智 5

遇到了这个并且遇到了非常相似的问题..

同样的错误消息通知我找不到我尝试创建的变量名称(此问题的注意事项是尝试创建名为 ID 的变量,并且错误告诉我们“找不到 ID”)

如果删除“ID = ${curl”周围的空格,应该可以解决该问题。

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