【问题标题】: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 作为其意见
  • 不要这么认为 - 我要求的是各种解决方案的技术比较,而不是您最喜欢的网络漫画。

标签: xcode continuous-integration build-automation xcodebuild


【解决方案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。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-02-06
            • 2019-10-09
            • 2020-09-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多