持续集成

  • 持续集成是什么?
    • 为什么要使用持续集成?
  • 持续交付
    • 为什么要交给质量团队或是用户呢?
  • 持续部署
  • 持续集成的流程

持续集成是什么?

CI,是指在一段时间内(如:约定好的一天内或是一个上午),多次的将代码提交到主干上去。自然,每次都要通过测试。

大师Martin Fowler对持续集成是这样定义的:持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。

为什么要使用持续集成?

  • 减少风险
    可以快速的发现错误

  • 可快速定位错误

  • 可降低代码整合的错误

  • 防止长时间过后,集成失败

  • 可以更好的了解进度,更好的收集数据

emmm~~博主表示很难受,在之前的开发之中,打算将所有功能完善之后才去Pull代码、Commit代码以及Push的时候,突然发现。。。。悲剧了
代码拉下来冲突一堆
为了时间问题,当时就是直接重新拉取代码,再去移动新功能代码

继续拿,大师Martin Fowler的话来讲就是,持续集成并不解决BUG,而是能够更加快速的发现以及更正。

自然地,当我们持续集成的时候,必须也要保证代码的可行性,简单讲就是单元测试通过了,我们才去集成。不然就是搞事情了~~~

与持续集成相关的,一般还会搭上持续交付以及持续部署

持续交付

持续交付(Continuous delivery)指的是,频繁地将软件的新版本,交付给质量团队或者用户。持续交付强调的是,无论如何更新,都可以随时随地的交付软件的。

过程简单来说就是:
当集成完成以后,可以自动的部署到测试环境当中,而后进入类生产环境中 当一切都经过持续集成后,没问题的时候,我们再手动部署到生成环境。

为什么要交给质量团队或是用户呢?

开句玩笑话的话,那就是,大部分开发人员在完成功能的时候表面看似波澜不惊,一望无垠。但是,内心却是风起云涌。
为什么? 很简单,因为是我们自己写的,所以,基本上找不出反驳自己的问题,但是就是有问题。。。。就是找不出来 尴尬

这时候,就需要专业的质量团队(测试人员)或是用户了。
因为一个是专业的嘛,另一个就是那句话了 ,群众的眼睛是雪亮雪亮的~~BinlingBinling

持续部署

  • 持续部署(continuousdeployment)是持续交付的下一步,指的是代码通过评审测试以后,自动部署到生产环境。【图片的AUTO 交付是手动的】
  • 持续部署的目标是,代码在任何时刻都是可部署的,可以进入生产阶段。
  • 持续部署的前提是能自动化完成测试、构建、部署等步骤。

持续集成的流程

  • 提交
    如,我们经常的使用开发工具将代码,提交到版本控制系统(GitHub/GitLab)当中。 版本控制系统请移步此处点击
  • 测试
    如,单元测试以及集成测试。
  • 构建
    所谓构建,指的是将源码转换为可以运行的实际代码,比如安装依赖,配置各种资源(样式表、JS脚本、图片)等等。

常用的构建工具如下:

  • Jenkins
  • Travis
  • Codeship
  • Strider
  1. 再一次测试
    此次,测试可以是说是全面性的测试,或是为了减少问题的行为。只为,此次集成的可行性。覆盖率一般大于第一次的测试。

  2. 部署
    打包,将此次版本发布于服务器上。

  3. 回滚
    如果出现问题,即刻,恢复到上个版本。

PS:图片源自 https://www.seoxiehui.cn/article-68607-1.html

持续集成(Continuous integration,简称CI)相关推荐

  1. 使用Jenkins在Azure Web App上进行ASP.NET Core应用程序的持续集成和部署(CI/CD)–第4天

    目录 主题 路线图 Jenkins 先决条件 使用Jenkins Azure Pipeline在Azure上的ASP.NET Core应用程序的CI/CD 创建新的管道作业 添加参数 添加管道脚本 运 ...

  2. 使用Jenkins在Azure Web App上进行ASP.NET Core应用程序的持续集成和部署(CI/CD)–第3天

    目录 主题 路线图 先决条件 Azure Active Directory和服务主体 创建一个Azure Active Directory和服务主体 将应用程序集成到角色 将Jenkins与Azure ...

  3. django 集成个推_持续集成CircleCI vs Travis CI vs Jenkins

    Continuous Integration. CircleCI vs Travis CI vs Jenkins​hackernoon.com 持续集成(CI)的定义及其主要目标 持续集成(CI)是一 ...

  4. SAP 电商云 Spartacus UI 的持续集成 - Continous integration

    在将代码集成到我们的开发主线之前,会运行一个持续集成过程以证明可以安全地集成更改. 我们将 Travis CI 用于我们的持续集成服务. 每次将代码推送到 Spartacus 存储库时(无论是否已发出 ...

  5. 使用Jenkins在Azure Web App上进行ASP.NET Core应用程序的持续集成和部署(CI/CD)–第2天

    目录 主题 路线图 先决条件 将ASP.NET Core应用发布到Azure应用服务 在Azure上配置Jenkins 在Azure上创建Jenkins服务器 解锁Jenkins 结论 主题 本系列文 ...

  6. 使用Jenkins在Azure Web App上进行ASP.NET Core应用程序的持续集成和部署(CI/CD)–第1天

    目录 介绍 路线图 DevOps 持续集成 持续部署 Jenkins Azure Web App服务 主题 先决条件 安装Jenkins 先决条件 下载并安装 Jenkins插件 让它运行 安装自定义 ...

  7. 持续集成(CI)和容器管理 学习笔记

    文章目录 1. DockerMaven插件 1.1 Maven插件自动部署步骤: 2. 持续集成与Jenkins 2.1 什么是持续集成 2.2 Jenkins简介 2.3 Jenkins安装 2.3 ...

  8. 持续集成mysql_DevOps安装、部署持续集成

    1.重启docker服务,开启iptables转发功能 # systemctl start docker # vi /etc/sysctl.conf # sysctl -p [root@localho ...

  9. 基于 CODING 的 Spring Boot 持续集成项目

    本文作者:CODING 用户 - 廖石荣 持续集成的概念 持续集成(Continuous integration,简称 CI)是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少 ...

  10. 持续集成/持续交付(CI/CD)

    目录 全面了解持续集成/持续交付 概览 "持续"是什么意思? 什么是"持续交付管道"? 持续交付管道是如何工作的? "快速失败"是什么意思? ...

最新文章

  1. Fragment的运用实列
  2. Vue 全家桶 + Electron 开发的一个跨三端的应用
  3. c语言删除文件中的结构体_C语言插入、删除、更改文件内容
  4. leetcode算法题--Is Subsequence
  5. oracle restart 静默安装,CentOS下静默安装Oracle 10.2.0.1.0
  6. php try catch
  7. layui自定义查询条件html页面,Layui的数据表格+springmvc实现搜索功能的例子_飛雲_前端开发者...
  8. MySQL step by step 安装实战
  9. Linux工作笔记022---查看Centos 内核版本号
  10. 微商人赚钱的4个落地动作
  11. matlab贝塞尔函数的根,matlab画贝塞尔函数根分布的曲线图
  12. 凸优化第五章对偶 5.6扰动及灵敏度分析
  13. 程序猿必看10本好书推荐
  14. 数据中心IDC产业研究报告:碳中和背景下,IDC产业链的破局之路
  15. 1分钟搞定 OneNote自己账号扩容到15G永久免费空间
  16. python发送短信接口_python 调用接口发短信
  17. 恒流LED驱动芯片 SM15133EK SM15133EH 明微电子
  18. java sql timestamp_Java SQL Timestamp before()用法及代码示例
  19. 攻防世界高手区easytornado过关
  20. ImageMagick将多张图片拼接成一张图片_长图拼接app下载-长图拼接最新版下载v2.8.6...

热门文章

  1. 每日爬虫练习:爬取最新搞笑段子
  2. In-App Purchase 苹果内置购买研究(待续)
  3. AI作诗,模仿周杰伦创作歌词-实战项目
  4. (已解决)Latex--取消正文中参考文献引用的上标显示(gbt7714-2015会导致默认上角标引用)(上角标平齐标混合使用教程)
  5. C#开发中Windows域认证登录2(扩展吉日嘎拉GPM系统)
  6. android 平板常用尺寸规范,Android的设计尺寸规范
  7. Partitionfinder2安装踩坑
  8. vue中未登录页面跳转到登录页
  9. B - Dining POJ - 3281 -网络流拆点模板
  10. Termux定时运行python脚本