Swift-持续集成(CI)

本文是同时介绍TDD和多个CI概念的指南的一部分。 您可以在 此处 查看介绍性文章

在一个简单的项目(例如,有一个开发人员)下处理和管理代码通常是一件容易的事。 但是,当更多的人开始加入时,项目将增长,代码将获得更多功能,管理任务将逐步升级,并且很快就无法实现。

CI的基本原理是,通过不断审核更改,可以防止(或至少减少)此类集成问题。 每次提交后(如果您使用的是git),CI都会构建您的代码并运行测试套件,以确保最新的更改不会破坏任何内容!

CI还可以在单​​独的计算机上(无论是否在本地)运行,以确保代码在与用户的计算机不同的计算机上运行,​​并且该代码也可以在“干净”的计算机上构建,而无需事先安装任何吊舱等。

在为我的Swift项目寻找合适的CI时,我遍历了其中三个:

  • Travis CI:基于云,它提供了一个VM,供您在其中运行代码。适用于XCode项目,您可以运行xcodebuild xctool甚至fastlane命令。 简单的界面,但至少到目前为止,它仅与GitHub项目配对。 它是免费的开源项目,并且为私有存储库提供了不同的层次。
  • Circle CI:非常类似于TravisCI,也是基于云的。 它的配置有些不同,但没什么特别的。 它的免费套餐仅适用于Linux机器,并已付费MacOS平台(提供免费的两周计划)
  • Jenkins CI:与前两个相反,Jenkins是免费的,但您必须将其托管在自己的服务器中。 它具有更多的可定制性,但这是以不那么友好的配置为代价的。 它的学习曲线更陡峭,但是如果您想对事情进行更多的控制,这可能是我的选择。

此外,我还想包括其他工具,这些工具将有助于检查测试覆盖率,代码质量和棉绒:

  • CodeCov:有关测试覆盖率的报告
  • SwiftLint:分析代码中可能的错误,样式错误和/或可疑的内容;
  • 猎犬:类似于SwiftLint,但基于云
  • Codebeat:通才代码审查,检查代码重复,长函数或语句等

让我们从这里开始看看该工具如何与GitHub存储库一起使用。