使用 Xcode 服务器机器人在集成之前复制文件

Copying a file before integration using an Xcode Server bot

我正在使用 Xcode 服务器为我们的 iOS 应用程序设置持续集成 (CI) 服务器。问题是我们有一个 plist,cred.plist 每个人都有他们的凭据和测试环境详细信息,这些信息被 git 忽略,如果没有它,应用程序将无法编译和 运行。有一个用于更新 cred.plist 的文件 cred_dist.plist 将用于我们的 CI 目的,我想在集成之前 rename/copy 它并将其命名为 "cred.plist".项目中的两个文件都在根目录中。

我已尝试将脚本添加到 CI 目标和机器人本身,但无济于事。下面是 bot "Before Integration" 脚本部分的尝试示例以及我收到的错误消息。我已经尝试了几乎所有我能找到的目录变量,包括 XCS_ 前缀变量,只是一个斜杠,没有前缀。

机器人成功地从我们的 repo 中提取代码并构建到需要 plist 的程度,然后出错。

任何建议或帮助将不胜感激!谢谢!

脚本:

#! /bin/bash

cp -a $(TMPDIR)/cred_dist.plist $(TMPDIR)/cred.plist

错误:

Assertion: Reading data: The file cred.plist” couldn’t be opened because there is no such file.
File: MyProject/cred.plist:(null)

经过一些挖掘、反复试验和测试,我相信我已经找到了解决方案。问题是最接近的 XCS_ 前缀变量是 XCS_SOURCE_DIR,但指向克隆项目的位置...这意味着路径实际上应该是 ${XCS_SOURCE_DIR}/myproject/cred_dist.plist。下面是我用来执行此任务的脚本;它在集成之前运行 - 希望它会对某人有所帮助!

#! /bin/bash

cp -a ${XCS_SOURCE_DIR}/myproject/cred_dist.plist ${XCS_SOURCE_DIR}/myproject/cred.plist