我想做的是能够为 Jenkins 正在构建的提交添加一个标签。现在我用 Jenkins 内部版本号标记提交,但我还想添加在前面的 Info.plist CFBundleVersion 中列出的应用程序版本。
我想知道的是,我如何使用 Jenkins 或其他方式获取该值并能够将其用作 Jenkins 中的参数/变量?
我看到过使用 plistbuddy 来设置这个值的引用资料,所以我假设有一种方法可以使用它来获得相同的值。虽然我不知道如何以及如何将它带到我可以在 Jenkins 中使用它的地方。
为了进一步说明,我在 Jenkins 中使用 Git Publisher 创建标签并使用这种格式推送它
jenkinsbuild-$BUILD_NUMBER
这会在 git 中的提交上产生这样的标记 - jenkinsbuild-303
假设我的应用程序当前版本为 3.5,我想要的是一个读取 - jenkinsbuild-3.5-303 的标签
最佳答案
我设法从@agy 链接到的答案中拼凑出一个解决方案。这是我所做的:
在 Jenkins 配置的构建部分,我将以下两行添加到 Xcode 步骤之后的“Execute Shell”步骤:
APP_VERSION=$(/usr/libexec/PlistBuddy -c "Print :CFBundleShortVersionString" "path to your plist") echo APP_VERSION=$APP_VERSION > appversion.properties;
之后,我添加了“注入(inject)环境变量”步骤(我认为这是 EnvInject 插件的一部分),我将“appversion.properties”添加到属性文件路径 字段。
完成此操作后,APP_VERSION 现在可用作后续 shell 命令步骤中的环境变量。
关于ios - 从 Jenkins 中获取 CFBundleVersion 以将其用作变量,例如 ${APP_VERSION},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30846017/