在Python中设置Jenkins环境变量
我正在搭建一个Jenkins环境,用来自动化我们的iOS(Xcode)构建。
现在的流程如下:
- 构建是通过远程触发的。需要传递应用的名称、包ID、配置文件的URL(还有其他一些数据)。
- Jenkins从git上获取最新的代码版本。
- 运行一个Python脚本,根据触发时提供的数据来编辑应用的Info.plist文件。这个Python脚本还会使用这种方法来安装配置文件。
- Jenkins使用Xcode插件来构建项目。
Xcode插件允许你指定用于构建应用的配置文件UUID。第三步的Python文件会获取这个UUID。所以现在我需要做的是保存这个UUID,以便Xcode插件可以以普通文本的形式使用。
我使用了EnvInject插件来创建和设置一个环境变量,这样在Xcode插件中可以使用。但是我无法在作业运行时通过任何脚本(Python或Shell)来设置这个环境变量,它只能在作业的配置页面中硬编码。
希望有人能帮忙。谢谢!
1 个回答
0
但是我无法在作业运行时通过任何脚本(Python或Shell)设置这个环境变量。
其实你可以。
- 你的Python或Shell脚本需要把一个值写入到一个预先设定好的文件,格式是
param=value
,这个文件的路径是path/to/file.props
(经过一些调整,这个路径也可以是动态的)。 - 配置EnvInject去读取这个
path/to/file.props
文件。 所以:
- Python或Shell脚本动态运行并写入文件。
- EnvInject读取这个文件并加载环境变量,包括
$param
。 - 现在你的
$param
可以在后续的作业或脚本中使用了。