sat*_*jit 12 xcode continuous-integration xcode-bots xcode6
我需要访问每个bot集成期间动态创建的文件夹.在其中一个运行中它是这样的 -
/ Library/Developer/XcodeServer/Integrations/Caches/a3c682dd0c4d569a3bc84e58eab88a48 /DerivedData/Build/Products/Debug-iphonesimulator/my.app
我想在post触发器中找到这个文件夹,我该怎么办呢?基于wwdc谈话,似乎正在使用一些环境变量,如'XCS_INTEGRATION_RESULT'和XCS_ERROR_COUNT等.我还可以在日志中看到像PROJECT_DIR这样的东西.
但我无法从命令行访问这些变量中的任何一个(是因为我是一个与机器人不同的用户?)另外,我在哪里可以找到这个CI系统创建的变量列表?
Pap*_*ppy 24
我一直在回应设置到机器人日志,我的机器人脚本的第一行很简单
set   
在集成完成后查看日志时,它将位于触发器输出中.
XCS_ANALYZER_WARNING_CHANGE=0
XCS_ANALYZER_WARNING_COUNT=0
XCS_ARCHIVE=/Library/Developer/XcodeServer/Integrations/Integration-76eb5292bd7eff1bfe4160670c2d4576/Archive.xcarchive
XCS_BOT_ID=4f7c7e65532389e2a741d29758466c18
XCS_BOT_NAME='Reader'
XCS_BOT_TINY_ID=00B0A7D
XCS_ERROR_CHANGE=0
XCS_ERROR_COUNT=0
XCS_INTEGRATION_ID=76eb5292bd7eff1bfe4160670c2d4576
XCS_INTEGRATION_NUMBER=15
XCS_INTEGRATION_RESULT=warnings
XCS_INTEGRATION_TINY_ID=FF39BC2
XCS_OUTPUT_DIR=/Library/Developer/XcodeServer/Integrations/Integration-76eb5292bd7eff1bfe4160670c2d4576
XCS_PRODUCT='Reader.ipa'
XCS_SOURCE_DIR=/Library/Developer/XcodeServer/Integrations/Caches/4f7c7e65532389e2a741d29758466c18/Source
XCS_TESTS_CHANGE=0
XCS_TESTS_COUNT=0
XCS_TEST_FAILURE_CHANGE=0
XCS_TEST_FAILURE_COUNT=0
XCS_WARNING_CHANGE=36
XCS_WARNING_COUNT=36
@Viktor是正确的,这些变量仅在各自的会话期间存在.@Pappy列出了这些变量的绝佳列表.
它们可以在脚本中使用,如下所示:
IPA_PATH="${XCS_OUTPUT_DIR}/${XCS_BOT_NAME}.ipa"
echo $IPA_PATH
我不熟悉 Xcode Server,但通常 Unix/CI 系统在导出环境变量时仅将其导出到当前会话。
如果你想持久地设置一个环境变量,你必须在像 ~/.bash_profile 或 ~/.bashrc 这样的初始化文件中设置它,这样它总是在 shell 会话启动时被设置/加载(例如:当你使用终端登录时 -确切的文件取决于您启动的 shell 类型)。
持久导出这些也没有多大意义,因为在这种情况下,如果您运行不同的集成,它们只会覆盖彼此导出的环境变量(它们将设置相同的环境变量)。
这就是为什么通过环境变量进行通信的系统通常不会将变量写入持久初始化程序文件,而只是导出变量。通过导出,可以从导出该变量的进程以及该进程启动的子进程访问该变量。
例如,在 bash 脚本中,如果导出变量,则可以在导出后从 bash 脚本以及从 bash 脚本启动的任何命令/程序访问该变量,但当 bash 脚本完成时,将无法再访问该环境。
编辑 只是为了澄清一下:您应该能够从由 Xcode Server 运行的后触发脚本访问这些环境变量,但您很可能无法从终端/命令行访问这些环境变量。
另外我在哪里可以找到这个 CI 系统创建的变量列表?
您可以使用env命令打印所有可用的环境变量。在 bash 脚本中,只需在新行中输入env即可,如下所示:
#!/bin/bash
env
这将打印所有可用的环境变量(不仅仅是 Xcode Server 定义的环境变量!) - 如果需要,您可以简单地将其传输到文件进行检查,如下所示:
#!/bin/bash
env > $HOME/envinspect.txt
运行此脚本后,您只需打开用户主文件夹中的 envinspect.txt 文件即可。
| 归档时间: | 
 | 
| 查看次数: | 6758 次 | 
| 最近记录: |