在Python中设置Jenkins环境变量

1 投票
1 回答
4102 浏览
提问于 2025-04-18 17:26

我正在搭建一个Jenkins环境,用来自动化我们的iOS(Xcode)构建。

现在的流程如下:

  1. 构建是通过远程触发的。需要传递应用的名称、包ID、配置文件的URL(还有其他一些数据)。
  2. Jenkins从git上获取最新的代码版本。
  3. 运行一个Python脚本,根据触发时提供的数据来编辑应用的Info.plist文件。这个Python脚本还会使用这种方法来安装配置文件。
  4. 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 文件。
  • 所以:

    1. Python或Shell脚本动态运行并写入文件。
    2. EnvInject读取这个文件并加载环境变量,包括 $param
    3. 现在你的 $param 可以在后续的作业或脚本中使用了。

撰写回答