如何正确使用EnvInject Jenkins插件?
我想创建的工作流程如何正确使用EnvInject Jenkins插件?,jenkins,Jenkins,我想创建的工作流程 “Shell Executors”将变量写入build.properties文件 EnvInject插件读取build.properties将它们作为环境变量注入,因此可以在作业中的任何地方使用它们。 我得到了这样的例外: [EnvInject] - Loading node environment variables. Building remotely on master-worker (lucid) in workspace /data/jenkins/workspa
build.properties
文件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
只要在“属性文件路径”中指向的文件包含变量分配(例如ID=123),则无需在“属性内容”中添加任何内容
- 验证shell脚本创建的工作区中的文件是否包含变量分配
- 清除“属性内容”框
- 您可以从“属性文件路径”中删除$WORKSPACE,默认情况下,它相对于作业的工作空间
您应该将文件中的变量加载到作业环境中。遇到了这个问题,并且遇到了非常类似的问题 同一条错误消息通知我,我试图创建的变量名未找到(注意,这个问题的原因是我们试图创建一个名为ID的变量,错误告诉我们“未找到ID”) 如果删除'ID=${curl'周围的空格,应该可以解决这个问题 在shell脚本中创建变量不需要使用空格。
示例:MY_VARIABLE=“MY value”虽然@freebourn有很好的建议,但实际的错误表明
ID=$(…)
失败了,因为在shell中,赋值中不应该有空格:ID=$(…)
下次,请给我们失败的代码(不是它的图像,某些关键细节会被屏蔽)。