持续集成(Continuous integration,简称CI)
持续集成
- 持续集成是什么?
- 为什么要使用持续集成?
- 持续交付
- 为什么要交给质量团队或是用户呢?
- 持续部署
- 持续集成的流程
持续集成是什么?
CI,是指在一段时间内(如:约定好的一天内或是一个上午),多次的将代码提交到主干上去。自然,每次都要通过测试。
大师Martin Fowler对持续集成是这样定义的:持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。
为什么要使用持续集成?
减少风险
可以快速的发现错误可快速定位错误
可降低代码整合的错误
防止长时间过后,集成失败
可以更好的了解进度,更好的收集数据
emmm~~博主表示很难受,在之前的开发之中,打算将所有功能完善之后才去Pull代码、Commit代码以及Push的时候,突然发现。。。。悲剧了
代码拉下来冲突一堆
为了时间问题,当时就是直接重新拉取代码,再去移动新功能代码
继续拿,大师Martin Fowler的话来讲就是,持续集成并不解决BUG,而是能够更加快速的发现以及更正。
自然地,当我们持续集成的时候,必须也要保证代码的可行性,简单讲就是单元测试通过了,我们才去集成。不然就是搞事情了~~~
与持续集成相关的,一般还会搭上持续交付以及持续部署
持续交付
持续交付(Continuous delivery)指的是,频繁地将软件的新版本,交付给质量团队或者用户。持续交付强调的是,无论如何更新,都可以随时随地的交付软件的。
过程简单来说就是:
当集成完成以后,可以自动的部署到测试环境当中,而后进入类生产环境中 当一切都经过持续集成后,没问题的时候,我们再手动部署到生成环境。
为什么要交给质量团队或是用户呢?
开句玩笑话的话,那就是,大部分开发人员在完成功能的时候表面看似波澜不惊,一望无垠。但是,内心却是风起云涌。
为什么? 很简单,因为是我们自己写的,所以,基本上找不出反驳自己的问题,但是就是有问题。。。。就是找不出来 尴尬
这时候,就需要专业的质量团队(测试人员)或是用户了。
因为一个是专业的嘛,另一个就是那句话了 ,群众的眼睛是雪亮雪亮的~~BinlingBinling
持续部署
- 持续部署(continuousdeployment)是持续交付的下一步,指的是代码通过评审测试以后,自动部署到生产环境。【图片的AUTO 交付是手动的】
- 持续部署的目标是,代码在任何时刻都是可部署的,可以进入生产阶段。
- 持续部署的前提是能自动化完成测试、构建、部署等步骤。
持续集成的流程
- 提交
如,我们经常的使用开发工具将代码,提交到版本控制系统(GitHub/GitLab)当中。 版本控制系统请移步此处点击 - 测试
如,单元测试以及集成测试。 - 构建
所谓构建,指的是将源码转换为可以运行的实际代码,比如安装依赖,配置各种资源(样式表、JS脚本、图片)等等。
常用的构建工具如下:
- Jenkins
- Travis
- Codeship
- Strider
再一次测试
此次,测试可以是说是全面性的测试,或是为了减少问题的行为。只为,此次集成的可行性。覆盖率一般大于第一次的测试。部署
打包,将此次版本发布于服务器上。回滚
如果出现问题,即刻,恢复到上个版本。
PS:图片源自 https://www.seoxiehui.cn/article-68607-1.html
持续集成(Continuous integration,简称CI)相关推荐
- 使用Jenkins在Azure Web App上进行ASP.NET Core应用程序的持续集成和部署(CI/CD)–第4天
目录 主题 路线图 Jenkins 先决条件 使用Jenkins Azure Pipeline在Azure上的ASP.NET Core应用程序的CI/CD 创建新的管道作业 添加参数 添加管道脚本 运 ...
- 使用Jenkins在Azure Web App上进行ASP.NET Core应用程序的持续集成和部署(CI/CD)–第3天
目录 主题 路线图 先决条件 Azure Active Directory和服务主体 创建一个Azure Active Directory和服务主体 将应用程序集成到角色 将Jenkins与Azure ...
- django 集成个推_持续集成CircleCI vs Travis CI vs Jenkins
Continuous Integration. CircleCI vs Travis CI vs Jenkinshackernoon.com 持续集成(CI)的定义及其主要目标 持续集成(CI)是一 ...
- SAP 电商云 Spartacus UI 的持续集成 - Continous integration
在将代码集成到我们的开发主线之前,会运行一个持续集成过程以证明可以安全地集成更改. 我们将 Travis CI 用于我们的持续集成服务. 每次将代码推送到 Spartacus 存储库时(无论是否已发出 ...
- 使用Jenkins在Azure Web App上进行ASP.NET Core应用程序的持续集成和部署(CI/CD)–第2天
目录 主题 路线图 先决条件 将ASP.NET Core应用发布到Azure应用服务 在Azure上配置Jenkins 在Azure上创建Jenkins服务器 解锁Jenkins 结论 主题 本系列文 ...
- 使用Jenkins在Azure Web App上进行ASP.NET Core应用程序的持续集成和部署(CI/CD)–第1天
目录 介绍 路线图 DevOps 持续集成 持续部署 Jenkins Azure Web App服务 主题 先决条件 安装Jenkins 先决条件 下载并安装 Jenkins插件 让它运行 安装自定义 ...
- 持续集成(CI)和容器管理 学习笔记
文章目录 1. DockerMaven插件 1.1 Maven插件自动部署步骤: 2. 持续集成与Jenkins 2.1 什么是持续集成 2.2 Jenkins简介 2.3 Jenkins安装 2.3 ...
- 持续集成mysql_DevOps安装、部署持续集成
1.重启docker服务,开启iptables转发功能 # systemctl start docker # vi /etc/sysctl.conf # sysctl -p [root@localho ...
- 基于 CODING 的 Spring Boot 持续集成项目
本文作者:CODING 用户 - 廖石荣 持续集成的概念 持续集成(Continuous integration,简称 CI)是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少 ...
- 持续集成/持续交付(CI/CD)
目录 全面了解持续集成/持续交付 概览 "持续"是什么意思? 什么是"持续交付管道"? 持续交付管道是如何工作的? "快速失败"是什么意思? ...
最新文章
- Fragment的运用实列
- Vue 全家桶 + Electron 开发的一个跨三端的应用
- c语言删除文件中的结构体_C语言插入、删除、更改文件内容
- leetcode算法题--Is Subsequence
- oracle restart 静默安装,CentOS下静默安装Oracle 10.2.0.1.0
- php try catch
- layui自定义查询条件html页面,Layui的数据表格+springmvc实现搜索功能的例子_飛雲_前端开发者...
- MySQL step by step 安装实战
- Linux工作笔记022---查看Centos 内核版本号
- 微商人赚钱的4个落地动作
- matlab贝塞尔函数的根,matlab画贝塞尔函数根分布的曲线图
- 凸优化第五章对偶 5.6扰动及灵敏度分析
- 程序猿必看10本好书推荐
- 数据中心IDC产业研究报告:碳中和背景下,IDC产业链的破局之路
- 1分钟搞定 OneNote自己账号扩容到15G永久免费空间
- python发送短信接口_python 调用接口发短信
- 恒流LED驱动芯片 SM15133EK SM15133EH 明微电子
- java sql timestamp_Java SQL Timestamp before()用法及代码示例
- 攻防世界高手区easytornado过关
- ImageMagick将多张图片拼接成一张图片_长图拼接app下载-长图拼接最新版下载v2.8.6...
热门文章
- 每日爬虫练习:爬取最新搞笑段子
- In-App Purchase 苹果内置购买研究(待续)
- AI作诗,模仿周杰伦创作歌词-实战项目
- (已解决)Latex--取消正文中参考文献引用的上标显示(gbt7714-2015会导致默认上角标引用)(上角标平齐标混合使用教程)
- C#开发中Windows域认证登录2(扩展吉日嘎拉GPM系统)
- android 平板常用尺寸规范,Android的设计尺寸规范
- Partitionfinder2安装踩坑
- vue中未登录页面跳转到登录页
- B - Dining POJ - 3281 -网络流拆点模板
- Termux定时运行python脚本