在构建之前从 Jenkins 获取变量的值并在 config.properties 中更新它
Take value of a variable from Jenkins before build and update it in config.properties
我的要求是我有一个参数化的 Jenkins 作业,并询问我的脚本需要 运行 的环境变量值。在给出值时,jenkin 应该获取该值并在 config.properties 文件中更新它。
config.properties 文件:
ENVIRONMENT = ${env}
在 Jenkins 中,我将全局参数定义为:
Global Variable String Parameter
名称:环境
默认值:SIT1
(无法 post 图片,因为声誉低)
所以,当我现在点击构建时,它会询问变量 env 的值,然后开始执行。但是,它会抛出错误,因为 config.properties 中的环境变量无法识别构建之前提供的值。
P.S- 我安装了 EnvInject 插件,如果有帮助,请指导我如何使用它。如果我的问题看起来令人困惑,请提出我可以提供的要点以使其变得简单。
因此,我不确定您是否真的可以 "inject" 将环境变量添加到脚本中。前段时间我为 Jenkins 写了一个插件,它必须处理一些 perl 脚本并且当时很难处理环境变量。
关于EnvInject Plugin我几乎什么都不能说,我没用过。例如,您可以尝试使用 "build-action" 选项到 运行 shell 或批处理命令。您可以设置环境变量:
批量 set VARIABLE=value
或 export VARIABLE=value
用于 shell。然后,在您的脚本中,您可以很容易地获得变量的值。
这是将一些变量传递给脚本的简单而安全的方法。
我真的不确定,自从我没有接触 Jenkins 以来已经将近 3 个月了,如果这些全局属性不是真的用于将它们传递给脚本。您的 PC 上的脚本 运行,因此,如果它要使用环境变量,则必须设置这些变量。要传递您在 Jenkins 中设置的变量,它需要在您的机器上 set/export 它们,我不确定该插件是否已实现。
告诉我它是否有效,我会设法找到解决方案!保持联系!
我的要求是我有一个参数化的 Jenkins 作业,并询问我的脚本需要 运行 的环境变量值。在给出值时,jenkin 应该获取该值并在 config.properties 文件中更新它。
config.properties 文件:
ENVIRONMENT = ${env}
在 Jenkins 中,我将全局参数定义为:
Global Variable String Parameter
名称:环境
默认值:SIT1
(无法 post 图片,因为声誉低)
所以,当我现在点击构建时,它会询问变量 env 的值,然后开始执行。但是,它会抛出错误,因为 config.properties 中的环境变量无法识别构建之前提供的值。
P.S- 我安装了 EnvInject 插件,如果有帮助,请指导我如何使用它。如果我的问题看起来令人困惑,请提出我可以提供的要点以使其变得简单。
因此,我不确定您是否真的可以 "inject" 将环境变量添加到脚本中。前段时间我为 Jenkins 写了一个插件,它必须处理一些 perl 脚本并且当时很难处理环境变量。
关于EnvInject Plugin我几乎什么都不能说,我没用过。例如,您可以尝试使用 "build-action" 选项到 运行 shell 或批处理命令。您可以设置环境变量:
批量 set VARIABLE=value
或 export VARIABLE=value
用于 shell。然后,在您的脚本中,您可以很容易地获得变量的值。
这是将一些变量传递给脚本的简单而安全的方法。
我真的不确定,自从我没有接触 Jenkins 以来已经将近 3 个月了,如果这些全局属性不是真的用于将它们传递给脚本。您的 PC 上的脚本 运行,因此,如果它要使用环境变量,则必须设置这些变量。要传递您在 Jenkins 中设置的变量,它需要在您的机器上 set/export 它们,我不确定该插件是否已实现。
告诉我它是否有效,我会设法找到解决方案!保持联系!