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 开发人员使用啥自动构建系统?的主要内容,如果未能解决你的问题,请参考以下文章

maven是啥意思

C# 开发人员在使用 WPF 之前应该知道啥 [关闭]

与许多开发人员共享 Gradle 用户主页有啥缺点?

构建软件 DAW 需要哪些开发人员角色或头衔?

请问安卓系统,开发人员选项里的“不保留活动”以及“后台进程限制”有啥区别?“后台进程限制”里的“

RazorSQL 和 sql 开发人员无法使用 docker 连接到 Mac 上的 oracle DB