持续集成(CI)概念及使用方法
持续集成(Continuous integration)简称CI,是软件开发的一种实践方式,要求开发团队经常性进行系统集成。通过实施自动化构建,能够实现经常性、高频率的构建,并且在不断的集成过程中,持续增加软件功能,并能尽早发现系统错误。
简单说,持续集成分为两个概念,持续和集成。
集成
软件项目都是由多模块组成,并且由不同的人员,甚至由不同的团队完成各模块开发,那么软件在最终交付之前,必须保证能够顺利地组合在一起,这个组合的过程就是集成。
集成的具体工作可能包含联合编译、单元测试、统一打包等等。
在项目进行集成的过程中,可能会暴露出各种问题,包括模块间接口对接失败、模块间存在冲突,甚至能反应出架构设计缺陷。所以,要在软件开发的过程中尽早地进行集成尝试,若等到临近项目交付才开始做集成工作,那将非常糟糕,一定会造成项目延期。
持续
持续是指,不仅仅在交付前进行项目集成,要在整个开发过程中不断进行集成工作,甚至从项目一开始就进行集成工作。
因为集成工作能够有效地进行项目验证,那么多次集成便可以持续发现项目隐患,也就能在开发过程中尽早发现问题并持续改善。持续集成的效果和敏捷开发思想一脉相承,所以,持续集成是敏捷开发的有力保障。
但是过多的集成次数必然导致人力的浪费,人力的限制也同时限制持续集成的频率,所以,采用自动化集成是持续集成的成败关键。
编译构建和持续集成的关系
脉冲云的编译构建服务就是面向持续集成打造的在线的构建服务,或称为持续集成器。
如上文所述,持续集成是一种开发实践,并非是指某一个工具。而要实现持续集成,必须要自动化的编译构建做支持,因为纯人力无法满足高频集成要求。
自动化的编译构建服务是持续集成最关键的环节,但是持续集成实践并非只靠编译构建一个环节实现,还需要代码仓库、接口测试、镜像仓库、部署管理等环境配合使用。
编译构建服务作为持续集成实践最重要的一环,主要起到如下作用:
安装源码所需依赖
- 执行JUnit、PHPUnit等单元测试工具
- 执行Jlint、ESLint等语法检查工具
- 将源码编译成二进制程序
- 使用Meven/Gradle等工具将源码打包成WAR/JAR
- 使用Webpack/Gulp等工具打包前端资源
- 将程序打包成Docker镜像
持续集成(CI)概念及使用方法相关推荐
- 使用GitLab来实现IOS项目的持续集成CI
作为程序员,代码是一定要写的,而且要天天写.在好多地方见过这样一种说法: 只会写程序的程序员不是好程序员 当然,我不赞同这种观点,因为有的人他天生就是为程序而生的.但是掌握一些代码之外的理论知识也是一 ...
- centos7下Gitlab+Jenkins部署持续集成CI环境
1.基本环境 主机:win10,IP:192.168.0.111:部署机器centos7,IP:192.168.0.65: 内存推荐到8G,实测需要6G以上,以免出现内存不够用而报错. 2.安装git ...
- ci持续集成工程师前景_不要忽视持续集成(CI)/持续交付(CD)的13个优势
原标题:不要忽视持续集成(CI)/持续交付(CD)的13个优势 持续集成(CI)/持续交付(CD)是现代软件开发周期的基础,人们需要了解持续集成(CI)/持续交付(CD)和其管道实施的所有好处. 在传 ...
- 持续集成 ci/cd_CI / CD即服务:在云中进行持续集成和交付的10种工具
持续集成 ci/cd 云和持续集成 (CI)是天生的匹配. 尽管云使我们摆脱了安装和维护物理服务器的痛苦,但持续集成可以自动消除构建,测试和部署代码的痛苦. 如果两家公司都希望把工作从开发团队的肩膀上 ...
- 在持续集成 (CI) 环境中使用 Android 模拟器 | AndroidDevSummit 中文字幕视频
在本次演讲中,Hoi Lam 和 Lingfeng Yang 将为大家讲解如何在持续集成 (CI) 环境中使用 Android 模拟器.包括近期发布的功能: 模拟器的 Docker 镜像,以及如何部署 ...
- 持续集成(CI)工具-----jenkins
1.jenkins 1.1. 什么是jenkins Jenkins是一个开源的.提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续.自动的构建/测试软件项 ...
- 持续集成(CI)简单介绍
Continuous integration,简称CI 是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成.每次集成都通过自动化的 ...
- 软件持续集成(CI)、持续交付(CD)和持续部署(CD)
CI/CD 是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法.CI/CD 的核心概念是持续集成.持续交付和持续部署.作为一个面向开发和运营团队的解决方案,CI/CD 主要针对在集成新代码时 ...
- 持续集成学习笔记-入门篇(1)持续集成基本概念
今年7月份中下旬,笔者见过一个号称"资深开发者"的哥们(据说编程有十来年了),笔者问他:"你们平时用的持续集成工具都有哪些?"这哥们回答:"那些都是骗 ...
- Jenkins 持续集成(CI)工具
什么是Jenkins Jenkins是一个可扩展的持续集成引擎,是基于Java开发的一种持续集成工具,用于监控持续重复的工作. 1.概念 Jenkins中文官网 w3cschool中文文档 Jenki ...
最新文章
- Modeling System Behavior with Use Case(3)
- R语言ggplot2可视化分面图(faceting)、并设置每一个分面中的条形图都是排序的(bars are in order in each per facet of facet_warp)
- Android常见面试题解答
- php PDO php.ini
- libevent简介和使用【转】
- 今日头条PC端的状态管理,使用的实现库是Redux
- 项目设计基础:处理过程设计相关知识介绍​
- P2446 [SDOI2010]大陆争霸
- [渝粤教育] 广东-国家-开放大学 10763k2_客户服务管理_21秋考试
- 中国为什么不发展民用计算机,为什么大多数人都错估了计算机与AI的发展?
- 20191208_神经网络搭建_缺失值箱型图
- HFSS - 倒F天线的设计与仿真
- 浙江理工大学计算机考研试卷,2016年浙江理工大学计算机程序设计考研试题.pdf...
- vsto java,VSTO开发入门,C#基础篇
- 上反对下反对推理图_判断推理解题技巧:下反对关系的秒选技巧
- 这 173 家牛逼的互联网国企!值得你加入
- 公众号引流进阶教程(公众号对接电影,影视资源)
- 十分钟弄懂最快的APP自动化工具uiautomator2(入门到精通)
- 计算机桌面图标出现蓝色问号,win7系统桌面图标有蓝色问号的解决方法
- python美化excel_Python 使用 prettytable 库打印表格(美化输出)
热门文章
- 案例解析|水电站下泄生态流量监控解决方案
- 联合索引最左匹配原则
- Android音视频开发-音频篇-音频的原理
- 前端开源库免费 CDN 加速
- 机器学习笔记——岭回归(Ridge Regression)
- SMO(序列最小优化)算法论文及原理详述
- win10本次操作由于计算机的限制而取消,技术员设置Win10系统提示“本次操作由于这台计算机的限制而被取消”的修复教程...
- python 计算某段时间每日对数收益率,并设计一种指标进行交易,分析年化收益和夏普比率
- qq下载默认存放位置
- PyCharm最新资讯:新增Snyk插件用于查找和修复Python漏洞