开发人员喜欢把写的代码当成自己的孩子,他们会被当成艺术品一样呵护。作为家长,总是会认为自己的孩子是最好的,也会尽全力给自己的孩子最好的,就算有时候会超出自己的能力范围。
最终,孩子会走出去,和其他的小朋友一起玩,在某些时候,各家的孩子都可以按照自己的想法玩耍。
但是有时候,冲突无法避免,此时由谁去解决他们之间的整合问题呢?这就是我们要说的集成,而持续集成(CI)及其自动化工具的全部目的是将代码从测试、构建、部署和交付的障碍中解放出来。
随着项目的增长,需要集成的东西会越来越多,此时代码走查,冲突解决以及合并,问题回溯等任务甚至会花费比编写代码更多的时间。
CI 旨在帮助开发人员克服集成困难,并将注意力集中在他们喜欢做的事情上:编写代码。
CI 是一种开发实践,它要求编码人员每天数次将他们的工作集成到一个远程仓库中。
CI 工具会验证和测试每次提交的代码,并报告错误,允许团队成员快速解决错误。
市场上有很多这样的工具,它们之间有很多差异,因此为开发团队选择合适的工具不是一件容易的事情。然而,你可以通过以下方面评估工具是否符合要求:
-
设置简单
-
容易使用
-
IDE 集成
-
方便扩展的插件系统
我们来看看目前的主流 CI 工具有哪些。
Jenkins
Jenkins 是一个流行的、开源的自动化服务器,用于持续集成,具有丰富的插件和友好的用户界面。
Jenkins 可用于 Windows、Mac OS、Linux 和其他 Unix 版本。它提供了简单的安装和更新过程,并且可以通过图形用户界面轻松配置。
主从模式允许 Jenkins 支持分布式构建和基于表达式定时任务。它不仅提供了关于构建状态的通知,而且支持在构建步骤中执行命令。是目前最主要使用的 CI 工具。
Bamboo
Bamboo 由 Atlassian 研发。你可能对这个公司比较陌生,但是你一定听过 Jira 和 Trello,这些工具都是有 Atlassian 研发的。
Bamboo 在提供发布、质量指标和端到端可视性方面表现突出。
内置的 Git 和 Mercurial 使 Bamboo 能够自动化合并来自两个版本控制系统
的分支的过程。Bambor 负责分支检测、构建、测试和合并任务,以便仅基于分支名称将代码持续部署到生产环境。
Bamboo 是一个收费应用,一个公司可以付很少的费用获取许可证,就能获得技术支持是很划算的事情。
CircleCI
CircelCI 是一个基于云的 CI 解决方案,支持多平台的,适合分布式,有很多定制选项。它支持许多不同的语言,包括 Java、Python、JS、Haskell、Ruby on Rails 和 Scala,不过他只支持 GitHub 代码管控。
CircelCI 拥有庞大的用户群,是最常用的 DevOps 工具之一,每天处理超过一百万个构建。
CircleCI 的用户非常欣赏其独特的仪表盘,其中包含关于团队工作方式和代码运行方式的统计数据和数据,帮助他们提高生产力并缩短上线时间。
你可以免费使用,一旦有更高的需求就可以花少量钱提供更多的功能。
GOCD
虽然它的名字表明这一个更像是一个 CD(持续交付)工具,但 GoCD 实际上是一个开源 CI 服务器,用于轻松地可视化和构建复杂的工作流。它为构建 CD 管道提供了直观的界面,并以安全的方式将软件部署到生产环境中。
它可以通过管道进行版本控制。
GoCD 支持 JSON 和 YAML 格式,使您能够在管理配置时跳过界面。它还支持并行和顺序执行,允许团队领导轻松配置依赖项。
GoCD 可以实时、从端到端地查看可视化工作流。GoCD 有社区和插件系统,能更有弹性的扩展功能。
GitLab
GitLab 提供持续集成作为其版本控制产品的一部分。它的 CI 工具是一个 Web 应用程序,带有一个开放 API,通过友好的用户界面管理项目,并集成了 GitLab 的所有功能。
通过此 API,开发人员可以创建与产品的更深层次的集成。
GitLab CI 通过发现开发过程的潜在改进,帮助开发人员将想法转化为产品。开发人员在合并请求中共享每一段新代码,这将触发执行所有验证任务的管道,然后再将更改合并到源代码存储库中。
Codeship
一个简单灵活的 CI 工具,旨在通过快速持续集成解决方案帮助小型和成长型团队。
CodeShip 几乎可以与任何工具、服务或云集成,让团队领导添加他们需要的功能,比如如部署、通知、代码覆盖、安全扫描、版本控制等。
感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取