转载注明出处,欢迎关注微信小程序小白AI博客
微信公众号小白AI
或者网站 https://xiaobaiai.net
持续集成(Continuous Integration)即是发生在每一次的代码提交后,立即开始软件的构建(Build)和测试(Test),在一个拥有许多开发人员的大型项目中,一天中会多次提交,伴随着每个提交代码的构建和测试,如果测试通过,则测试构建以进行部署。如果部署成功,则代码将推送到生产环境。提交(commit),构建(build),测试(test)和部署(deploy)是一个连续的过程,因此称为持续集成/部署。
持续集成流水线是一种功能强大的工具,由一组用于托管,监控,编译和测试代码或监控代码更改的工具组成,比如:
在本文中,你将学会:
Jenkins
是一个开源的持续集成服务器,能够编排一系列操作,用自动化方式帮助你实现持续集成过程。Jenkins完全用Java编写。Jenkins是世界上广泛使用的应用程序,安装量约为300k,并且日益增长。它是一个基于Web服务器的应用程序,需要像Apache Tomcat这样的Web服务器。Jenkins变得如此受欢迎的原因在于它监督项目开发过程中出现的重复任务。例如,如果你的团队正在开发项目,Jenkins将不断测试你的项目,并在开发的早期阶段向你显示相关错误。
通过使用Jenkins,软件公司可以加速他们的软件开发过程,因为Jenkins可以快速自动化构建和测试。Jenkins通过构建,测试,文档化软件,部署和软件开发生命周期的其他阶段来支持软件的完整开发生命周期。
有些人可能会认为开发软件的老式方法是更好的方法。让我们通过以下示例了解CI与Jenkins的优势。
让我们想象一下,大约有10个开发人员在共享存储仓库上工作。一些开发人员在25天内完成任务,而其他人则需要30天才能完成任务。
不使用Jenkins | 使用Jenkins后 |
---|---|
一旦所有开发人员完成了他们分配的编码任务,他们就会同时提交他们的代码。稍后,将进行测试和部署。 代码提交已建立,测试周期非常罕见,并且在多天后完成了单个构建 | 一旦Developer提交代码,代码就会构建并测试。Jenkin将在白天多次构建和测试代码;如果构建成功,则Jenkins会将源代码部署到测试服务器并通知部署团队;如果构建失败,那么Jenkins会将错误通知给开发人员团队。 |
由于代码是一次性构建的,一些开发人员需要等到其他开发人员完成编码才能检查他们的构建 | 代码是在任何Developer提交后立即构建的。 |
隔离,检测和修复多次提交的错误并不是一件容易的事情。 | 由于代码是在每次提交单个开发人员之后构建的,因此很容易检测到哪些代码导致构建失败 |
代码构建和测试过程完全是手动的,因此存在很多失败的可能性。 | 自动构建和测试过程可节省时间并减少缺陷。 |
修复并测试所有错误后,才能部署代码。 | 每次成功构建和测试后都会部署代码。 |
开发周期缓慢 | 开发周期很快。 |
用户可以更轻松地使用新功能。
增加利润。
我相信大家都知道诺基亚的旧手机。诺基亚曾经实施过称为夜间构建的程序。在白天多次提交多个开发人员后,每晚都会构建软件。由于该软件仅在一天内构建一次,因此在大型代码库中隔离,发现和修复错误是一件非常大的难事。
后来,他们采用了持续集成方法,一旦开发人员提交了代码,就会构建并测试该软件,如果检测到任何错误,相应的开发人员可以快速修复缺陷。
默认情况下,Jenkins提供一组有限的功能。如果你想在Jenkins中安装Git等版本控制工具集成,那么就需要安装与Git相关的插件。实际上,为了集成Maven,Amazon EC2等工具,你也需要在Jenkins中安装相应的插件。
尽管Jenkins是一个非常强大的工具,但是它也有它的缺陷: