构建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工具上设置存储库肯定需要花费一些时间,但是,如果您的项目具有一定的复杂性,那是值得的,因为它可以节省代码检查时间并避免错误。 在项目开始时,您可能还需要为每个应用程序执行一次操作。
通过自动执行本文中描述的无聊的重复任务,您还将改善开发人员的体验。
下一部分:流媒体位置