构建Foursquare克隆iOS应用-第3部分:持续集成

  • 第1部分:简介和设置
  • 第2部分:位置数据和管理依赖项
  • 第三部分:持续集成
  • 第4部分:流媒体位置
  • 第5部分:网络层
  • 第六部分:国家管理

我们将在项目中使用持续集成(CI),通过每次推送到存储库的提交自动检查应用程序的质量。 CI还可以用于自动构建应用程序并将其部署到App Store,但这不在此介绍。

您可以随时查看Github存储库以供参考。

Travis最初将负责克隆最新的存储库提交,安装其依赖项,然后将尝试构建和运行我们在上一篇文章中编写的测试。 运行CI脚本后,如果构建或测试失败,它将把您的提交/ PR标记为无效。

我选择Travis CI作为CI平台是因为我过去有一些经验。 它在开源社区中得到了很好的采用,因此它也得到了StackOverflow的良好支持。

开始使用Travis

首先,使用您的Github帐户登录TravisCI页面,并在配置文件页面中轻按开关以添加存储库。 Travis已经在听您的提交了。

然后,您需要在每次推送提交时指示Travis您想要什么。 这些说明在您需要在存储库的根文件夹中创建的.travis.yml配置文件中传递。

这是我们项目最初的文件外观:

上面的状态表示我们的应用程序已成功编译,但是使用TravisCI可以实现更多目标。 在下一步中,我们将使用TravisCI的另一个免费工具来显示我们应用程序测试的代码覆盖率。

Codecov是用于集中存储库的代码覆盖历史记录的工具。 在运行上一篇文章中描述的测试之后,将Travis配置为将代码覆盖率报告上载到Codecov。

要启用此功能,首先您需要配置Xcode项目以生成coverage数据,以便稍后上传:选择方案并点击“ Edit Scheme …”,选择“ Test”并启用“ Gather coverage data”。

要在您的存储库中启用Codecov,请首先使用您的Github帐户注册,然后在此处添加您的存储库。 完成此操作后,您就可以通过配置travis.yml开始上传覆盖率数据:

危险是另一个在代码检查期间强制执行约定的CI工具。 在这个项目中,我们将使用默认配置以及SwiftLint验证。 要使其正常工作,您基本上需要:

  • 在项目的根目录中添加.swiftlint.yml文件,以排除外部依赖项。 在此文件中,您还可以添加自定义棉绒规则:
  • 将个人令牌添加到存储库的TravisCI设置页面上的DANGER_GITHUB_API_TOKEN环境变量中:
  • 指示TravisCI使用bundle exec danger运行Danger:

在CI工具上设置存储库肯定需要花费一些时间,但是,如果您的项目具有一定的复杂性,那是值得的,因为它可以节省代码检查时间并避免错误。 在项目开始时,您可能还需要为每个应用程序执行一次操作。

通过自动执行本文中描述的无聊的重复任务,您还将改善开发人员的体验。

下一部分:流媒体位置