云计算环境中的CI工具
曾在大规模企业中尝试过CI实践的开发者非常了解:代码的构建与测试的执行是一种非常消耗资源的操作,如果有多个团队使用同一个CI平台,那么这种情况将进一步加剧。近几年来,软件团队逐渐厌倦了本地托管的CI系统对时间与精力的要求。而基于云计算平台的SaaS解决方案的出现快速地弥补了这方面市场的缺失。
Travis CI 是一个 基于GitHub API所打造 的托管CI服务,使用Travis CI有一个先决条件,即源代码需要在GitHub进行托管。Travis CI通过 webhook 对GitHub代码仓库中的各种变化进行响应,例如代码提交或pull request等等。Travis CI也依赖GitHub提供的服务对用户和组织进行认证。
使用基于云环境的CI系统让开发者得以从对本地CI系统的安装、配置过程中解脱,不必再关注于基础设施和用户认证与授权方面的问题。此外,由于大多数SaaS方案都提供了对应的API,因此整个工作流都可以实现API驱动。
基于云环境的CI系统还有另一大优势,他们通常会提供更多的 测试功能 ,例如对不同浏览器与操作系统组合条件的测试。例如Travis就支持在Linux、Mac和Windows系统上的测试,并支持PHP、NodeJS、Go和C等各种语言。
用于移动应用的CI工具
随着智能手机的日益普及,移动应用的数量也在不断增长。但由于移动应用与Web应用相比有一些特别之处,例如它的测试与发布方式,以及完全不同的依赖管理机制,因此移动应用对于构建、测试及部署流程提出了完全不同的要求,这是传统的CI工具力所不及的。好在如今已经有几家主流的CI提供商实现了支持移动应用的CI工具,例如CircleCI已经 提供了对iOS应用的支持 。
移动应用的 测试 与Web应用具有很大的差别,Web应用的客户端多数集中在一些主流的浏览器与操作系统上,而移动应用的客户端往往是千差万别的,特别是在Android平台上。某些测试框架,例如 Espresso 以及 Appium 能够自动替你解决许多困难。而像 Crashlytics 与 HockeyApp 这样的工具除了内置的CI功能之外,还能够自动生成应用崩溃的报告,为开发者进行问题诊断提供充分的上下文。
而由于移动客户端的多样性,以集中化的方式进行所有测试的方式是不太实际的。因此,移动开发社区更推崇 beta测试 的方式,通过 TestFairy 或 TestFlight 等工具将潜在的新版本发布给beta测试人员。
移动应用的另一个独特之处在于它的 发布方式 ,通常需要经过漫长而繁琐的 审核流程 才可发布至对应的应用商店。这不仅降低了持续交付的速度,还不得不在流程中引入各种人工步骤,使全自动化的流程无法实现。
在会用好之前,我看最好是好好把手上的事情做做,实践实践!才能加强理解!