我的团队目前正在使用buildbot自动执行隔夜和持续集成构建和回归测试。对于构建和单元测试,构建器只调用一个脚本,该脚本从p4同步源,然后运行xcodebuild
。回归测试也由shell脚本启动,它们本身就是shell脚本和AppleScripts的组合。构建都在一个系统上执行,但随后buildbot触发测试在多台Mac上进行,具有不同的架构和操作系统组合。我喜欢buildbot的东西是自动触发器(因此只有在构建成功时才运行测试),并且报告包括瀑布视图以查看整体状态。
但是,我也看到了一些问题。协调构建的“主”进程要么是漏洞,要么只是有一个巨大的工作集,这意味着它消耗了几千兆字节的内存。偶尔网络问题意味着奴隶会丢失;而不是稍后重试它将只是失败的构建。实际上,如果应该为依赖构建触发slave,那么在它成功完成后,它将在第一次构建时失败。
那么你们其他人使用什么来自动化你的Xcode构建和单元测试呢?这些解决方案如何为您服务?你会推荐什么?
答案 0 :(得分:5)
答案 1 :(得分:4)
我们的团队使用Hudson的脚本将单元测试输出从XCode转换为NUnit格式。
答案 2 :(得分:2)
我知道这是一个较老的问题,但是对于那些使用TFS来保存他们的Xcode项目的人,我创建了一个自定义构建活动,以便通过TFS自动化Xcode构建。代码在Codeplex上托管:http://tfsxcodebuild.codeplex.com/。
希望有人发现它有用!
答案 3 :(得分:1)
我们计算出使用所有内存的日志 - 日志文件 - 旧的buildbot永远保存所有日志并将它们保存在内存中(可能直到重新启动)。
可以将较新的buildbot配置为保留固定数量的历史记录。
Buildbot构建日志文件的大小应该有限,以避免出现问题。
答案 4 :(得分:1)
我使用的XcodeBuilder是CruiseControl的一部分。当然,我写它是有帮助的。 :)
但是我确实在一个真正的多人项目中使用它,用于在应用程序商店中出售的iPhone应用程序(Surf)。
答案 5 :(得分:0)
现在已经三年了,我有自己的答案提供这个问题。我正在使用Jenkins,主要用于它提供的插件。它有一个插件,用于在Xcode项目(或工作空间中的方案)中构建目标。有一个插件可以运行Clang static analyzer。它与我的bug-tracker系统接口,它也会自动将构建推送到Testflight。