Mac开发人员使用什么自动构建系统?

时间:2009-07-24 08:21:56

标签: xcode continuous-integration build-automation xcodebuild

我的团队目前正在使用buildbot自动执行隔夜和持续集成构建和回归测试。对于构建和单元测试,构建器只调用一个脚本,该脚本从p4同步源,然后运行xcodebuild。回归测试也由shell脚本启动,它们本身就是shell脚本和AppleScripts的组合。构建都在一个系统上执行,但随后buildbot触发测试在多台Mac上进行,具有不同的架构和操作系统组合。我喜欢buildbot的东西是自动触发器(因此只有在构建成功时才运行测试),并且报告包括瀑布视图以查看整体状态。

但是,我也看到了一些问题。协调构建的“主”进程要么是漏洞,要么只是有一个巨大的工作集,这意味着它消耗了几千兆字节的内存。偶尔网络问题意味着奴隶会丢失;而不是稍后重试它将只是失败的构建。实际上,如果应该为依赖构建触发slave,那么在它成功完成后,它将在第一次构建时失败。

那么你们其他人使用什么来自动化你的Xcode构建和单元测试呢?这些解决方案如何为您服务?你会推荐什么?

6 个答案:

答案 0 :(得分:5)

我在Windows环境中使用TeamCity,但我相信它可以在Mac上运行,并且有xcode构建代理。

另一个类似问题here

答案 1 :(得分:4)

我们的团队使用Hudson的脚本将单元测试输出从XCode转换为NUnit格式。

答案 2 :(得分:2)

我知道这是一个较老的问题,但是对于那些使用TFS来保存他们的Xcode项目的人,我创建了一个自定义构建活动,以便通过TFS自动化Xcode构建。代码在Codeplex上托管:http://tfsxcodebuild.codeplex.com/

希望有人发现它有用!

答案 3 :(得分:1)

我们计算出使用所有内存的日志 - 日志文件 - 旧的buildbot永远保存所有日志并将它们保存在内存中(可能直到重新启动)。

可以将较新的buildbot配置为保留固定数量的历史记录。

Buildbot构建日志文件的大小应该有限,以避免出现问题。

答案 4 :(得分:1)

我使用的XcodeBuilderCruiseControl的一部分。当然,我写它是有帮助的。 :)

但是我确实在一个真正的多人项目中使用它,用于在应用程序商店中出售的iPhone应用程序(Surf)。

答案 5 :(得分:0)

现在已经三年了,我有自己的答案提供这个问题。我正在使用Jenkins,主要用于它提供的插件。它有一个插件,用于在Xcode项目(或工作空间中的方案)中构建目标。有一个插件可以运行Clang static analyzer。它与我的bug-tracker系统接口,它也会自动将构建推送到Testflight。