Travis与iOS应用程序的持续集成

持续集成(CI)是一种软件工程实践,可自动构建和测试触发器,例如代码提交或提取请求。 通常,测试和部署花费了开发时间的很大一部分,尤其是当组织遵循较小的发布周期时。 持续集成使该过程自动进行!
设置持续集成涉及运行构建服务器,构建代理和大量配置设置。 您将负责维护构建服务器和构建代理。 如果很乏味,我们可以提供Travis ,它是CI的托管服务。

1. Travis仅适用于Github上的项目,免费适用于开源应用
2.它在专用虚拟机上运行。 因此,Travis会为您维护构建代理和构建服务器
3.它与GitHub无缝集成,并且易于配置。

注册Travis

Travis通过Github Webhooks和服务进行通信。 前往travis网站并使用Gi​​thub进行注册。

您所有的Github公共项目都将同步,并显示在您的个人资料页面中。 默认情况下,所有项目都禁用Travis。 启用需要Travis集成的项目。

现在您可以看到Travis已添加到Github项目设置的Installed app部分。

推送提交或为项目创建请求请求,然后导航到Travis中的项目页面。

您将看到构建失败。 现在该让Travis知道这是一个iOS项目,并设置其他必需的配置。

设置.travis.yml

Travis根据编程语言提供了默认的构建环境和默认的构建步骤。 但是,对于iOS,它使用Facebook的xctool,该工具无法与最新的Xcode版本很好地配合使用。 Travis使用.travis.yml来了解您的项目和构建步骤。
导航到项目的根目录,并使用基本配置创建.travis.yml

vi .travis.yml
指定语言,osx_image和xcodebuild命令

 语言:迅捷 
osx_image:xcode9.3
脚本:xcodebuild构建
-sdk iphonesimulator
-project SplitBill.xcodeproj
方案SplitBill
-安静
CODE_SIGNING_REQUIRED =否

在终端中独立测试脚本以确保其正常运行。

使用xcodebuild -showsdks指定特定的SDK

使用xcodebuild -list 找到方案和目标名称

注意x对于osx_image中的’xcode9.3’是小写

在Travis中触发构建! 繁荣! 您的构建成功。

运行测试

要运行测试用例,请在“测试”下为您的架构添加测试目标

在管理方案下共享模式以推送这些更改,否则它将在您的系统本地。

现在使用目标和测试命令更新脚本

  xcodebuild构建 
-sdk iphonesimulator11.3
-project SplitBill.xcodeproj
方案SplitBill
-destination'platform = iOS Simulator,name = iPhone X,OS = 11.3'CODE_SIGNING_REQUIRED =未测试

Instruments -s devices列出所有可能的目的地

确保项目的部署目标等于或低于指定的操作系统。

推送更改并触发Travis构建! 繁荣! 您所有的测试都通过了,如果有任何失败,构建将失败并向您发送通知

支持的椰子

Travis中的虚拟机预装有Cocoapods。 但是,如果您需要下载类似于Cocoapods的任何依赖项,则可以在before_install :步骤中指定。 Cocoapods在安装步骤中安装,并且此步骤在每个构建中都会发生。 如果您有git子模块,则可以在此处更新子模块

 语言:迅捷 
osx_image:xcode9.3
before_install:
-宝石安装cocoapods
安装:
-吊舱安装
脚本:xcodebuild构建
-sdk iphonesimulator11.3
-workspace SplitBill.xcworkspace
方案SplitBill
-destination'platform = iOS Simulator,name = iPhone X,OS = 11.3'
CODE_SIGNING_REQUIRED =否
测试

跳过不必要的构建

Travis默认情况下会生成每个提交。 根据工程实践,可能没有必要。

您可以通过在提交消息中添加[skip ci]或[ci skip]来防止travis构建提交。

您还可以添加将按指定的定期运行的cron作业。

我喜欢整合Travis! 比集成TeamCity更好的体验。