Mac 开发人员使用啥自动构建系统?
Posted
技术标签:
【中文标题】Mac 开发人员使用啥自动构建系统?【英文标题】:What automated build system do Mac developers use?Mac 开发人员使用什么自动构建系统? 【发布时间】:2009-07-24 08:21:55 【问题描述】:我的团队目前正在使用 buildbot 来自动化夜间和持续集成构建和回归测试。对于构建和单元测试,构建器只需调用一个脚本,该脚本从 p4 同步源代码,然后运行 xcodebuild
。回归测试也由 shell 脚本启动,它们本身是 shell 脚本和 AppleScripts 的组合。构建都在一个系统上执行,然后 buildbot 触发测试在多台 Mac 上进行,具有不同的架构和操作系统组合。我喜欢 buildbot 的地方是自动触发器(因此测试仅在构建成功时运行),以及包括瀑布视图在内的报告以查看整体状态。
但是,我也看到了一些问题。协调构建的“主”进程要么是泄漏的,要么只是有一个巨大的工作集,这意味着它消耗了几千兆字节的内存。偶尔网络问题意味着一个slave会丢失;而不是稍后重试,它只会使构建失败。事实上,如果从属应该被触发以进行依赖构建,那么它会在成功完成后第一次构建失败。
那么你们其他人使用什么来自动化 Xcode 构建和单元测试呢?这些解决方案如何为您服务?有什么推荐的吗?
【问题讨论】:
可能值得将此社区 Wiki 作为其意见 不要这么认为 - 我要求的是各种解决方案的技术比较,而不是您最喜欢的网络漫画。 【参考方案1】:我在 Windows 环境中使用 TeamCity,但我相信它可以在 Mac 上运行并具有 xcode 构建代理。
另一个类似的问题here。
【讨论】:
【参考方案2】:我们的团队使用 Hudson 的脚本将单元测试输出从 XCode 转换为 NUnit 格式。
【讨论】:
【参考方案3】:我知道这是一个较老的问题,但是对于那些使用 TFS 来保存他们的 Xcode 项目的人,我创建了一个自定义构建活动,以使通过 TFS 自动化 Xcode 构建更容易。代码托管在 Codeplex 上:http://tfsxcodebuild.codeplex.com/。
希望有人觉得它有用!
【讨论】:
【参考方案4】:我们找出了使用所有内存的原因 - 日志文件 - 较旧的 buildbot 将所有日志永久保存并保存在内存中(可能直到重新启动)。
可以将较新的 buildbot 配置为保留固定数量的历史记录。
应限制 Buildbot 构建日志文件的大小以避免该问题。
【讨论】:
很好 :-) 我认为内存不足是主要问题,slave 可用性问题很烦人,但可以通过良好的网络来解决。【参考方案5】:我使用XcodeBuilder,它是CruiseControl 的一部分。当然,我写它有帮助。 :)
但我确实在一个真正的多人项目中使用了它,用于在应用商店出售的 iPhone 应用 (Surf)。
【讨论】:
【参考方案6】:现在已经三年过去了,我对这个问题有了自己的答案。我正在使用Jenkins,主要用于它提供的插件。它有一个用于在 Xcode 项目(或工作空间中的方案)中构建目标的插件。有一个插件可以运行Clang static analyzer。它与我的错误跟踪系统交互,它也会自动将构建推送到 Testflight。
【讨论】:
以上是关于Mac 开发人员使用啥自动构建系统?的主要内容,如果未能解决你的问题,请参考以下文章