ci框架到底是什么 什么是持续集成

ci框架到底是什么 什么是持续集成(1)

集成频繁的代码更新,然后使用自动化来验证构建和功能。

目前,大多数软件开发都是在一个团队中完成的,他们负责一个或多个版本控制系统中管理的代码库。个别开发人员需要处理更改的代码区域,并且必须决定何时将更改提交回版本控制。

有时,代码更改很容易,并且引入的风险很少,因此开发人员可以进行编辑和提交,从而降低了干扰队友处理相同代码基的风险。

但是,如果团队正在开发一个更大的特性,需要几天、几周甚至几个月的开发,又该怎么办呢?何时将这些代码更改签回版本控制是合适的?此外,如何确保开发团队开发的代码没有构建错误或其他功能缺陷?

为什么需要持续集成(CI)

直观的方法是将此工作分离到单独的版本控制分支中。团队决定是使用单个功能分支还是为每个开发人员创建多个功能分支。

虽然直观,但事实证明这种工作方式并不是最佳的。每个功能分支的变化都与主要的开发主干不同。如果长时间使用这些功能分支,则集成可能很困难,耗费时间来解决冲突,并且容易出错。

希望开发和部署功能的大型团队可以快速找到一种新方法,集成频繁的代码更改,然后使用自动化来验证构建和功能。 现在称为持续集成(CI)。

持续集成(CI)的定义

持续集成是一种编码理念和相关的一组实践,可以促使开发团队实施小的更改并经常检查代码到版本控制存储库。

由于大多数现代应用程序需要在不同平台和工具中开发代码,因此团队需要一种机制来集成和验证其更改。持续集成的技术目标是建立一致的自动化方法来构建,打包和测试应用程序。通过集成流程的一致性,团队更有可能更频繁地提交代码更改,从而实现更好的协作和软件质量。

持续集成(CI)如何在实践中发挥作用

持续集成是一种由流程机制和软件构建自动化支持的开发理念。在实践CI时,开发人员经常将他们的代码提交到版本控制存储库中,并且大多数团队至少每天都有最低限度的代码提交标准。

这背后的基本原理是,在较小的代码差异上识别缺陷和其他软件质量问题比在较长时间内开发的较大代码差异更容易。此外,当开发人员处理较短的提交周期时,多个开发人员不太可能编辑相同的代码并在提交时需要合并。

实现持续集成的团队通常从版本控制配置和实践定义开始。即使经常签入代码,也会在短时间和较长时间上实现功能和修复。实施持续集成的开发团队使用不同的技术来控制哪些功能和代码可以用于生产。

实践CI的团队更喜欢将代码提交到单个开发分支或主干。如果使用了特征分支,他们更喜欢看到它们的生命短暂并且经常合并到开发分支中。

有一些技术可用于管理需要更长开发时间但仍集成到开发分支中的功能。一些团队还使用功能标志,一种配置机制来在运行时打开或关闭功能和代码。仍在开发中的功能包含在代码中的功能标记,与主分支一起部署到生产中,并关闭直到它们准备好使用。

然后通过打包所有软件,数据库和其他组件来自动构建过程本身。例如,如果正在开发Java应用程序,CI会将所有静态Web服务器文件(如HTML,CSS和JavaScript)与Java应用程序和任何数据库脚本一起打包。

大多数CI工具允许开发人员根据需求启动构建,由版本控制存储库中的代码提交或定义的计划触发。团队需要讨论最适合团队规模,预期每日提交数量和其他应用程序注意事项的构建计划。最佳实践是确保提交和构建快速;否则,它可能会妨碍团队尝试快速编码并经常提交的进度。

所有这些工作流程都称为CI流水线。

使用持续集成(CI)进行开发和测试

引入CI流水线后,它会为开发人员建立新的工作流程。他们在自己的“本地”环境中在编辑器或IDE中编辑代码。理想情况下,它们还具有在其本地环境中运行的运行时环境,并且可以执行一些基本功能测试。然后,他们会执行任何可以在其环境中轻松运行的自动化单元测试。

通过验证这些基本测试,他们可以提交代码。诸如Jenkins或Travis之类的CI平台可以触发将所有代码元素打包成一个或多个构建组件的构建。然后,CI平台可以执行任何静态代码分析工具,并在构建中出现任何故障时向开发人员报告。

如果检测到故障,团队成员必须快速研究并解决问题,因为失败的构建流水线可能会停止整个团队的开发活动。许多团队跟踪构建成功和失败率的捕获指标,并使用此数据来确定开发过程的改进。

打包软件后,CI工具可以帮助将构建的软件交付到目标交付环境,触发交付所需的任何服务,例如重新启动应用程序服务器,以及启动任何自动化测试。这些交付步骤通常称为持续交付,集成到完整持续集成和交付(CI/CD)流水线中的测试功能是连续测试的一部分。

实践CI/CD的团队可以更快地为用户提供功能和增强功能。自动化和工作流程减少了编码和功能缺陷。这种类型的工作流程还可以增强团队之间的协作,并且通常可以推动更智能,更具创新性的解决方案这一切都始于持续集成(CI)。

原文链接:

https://www.infoworld.com/article/3295900/application-development/what-is-continuous-integration-ci-faster-better-software-development.html

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页