`

持续集成简介

 
阅读更多

   想起我刚毕业后,进入一家以软件外包为主的外企做开发。它使用传统的瀑布式的软件开发流程,没有使用任何的敏捷实践。我每天上班打开电脑,拿到自己的任 务,然后从版本控制更新代码,打开工程按下Build,准备进行今天的开发任务。突然发现Build失败(通常是编译不过),大喊一声“谁Break Build啦”,也没有人响应,自己一个人郁闷,接着查看是哪些文件导致编译失败,找到最后的提交人,让他去Fix Build。后来团队里如果某个人Break Build,其他某些团队成员就在MSN的签名上写着“XXX Break Build,今天要请客吃饭”等等。其实Build失败在软件开发过程中会经常出现,不同的程序员实现自己的模块,写单元测试,完成后提交代码,难免会造 成冲突导致Build失败。但是对于开发者来说,应当能够最快的获得当前Build的反馈,如果该Build失败必须在最短的时间内修复它,以免它影响其 他人的开发进度。

  Build具体包括哪些内容呢?它不仅仅指的是编译代码,而是指编译代码,运行所有的测试(包括单元测试,功能测试等),运行代码分析(比如分析代码是否 符合编码规范),部署系统(产生可执行的软件,或者把网站部署到Web服务器上)。Build是一系列的过程用来保证代码能够运行,能够正确的运行,最后 能发布出来。

  在敏捷开发中,有一个很重要的实践叫做持续集成。而什么是持续集成呢?简单来说,持续集成是频繁、持续的在多个团队成员的工作中进行集成,并且给与反馈。一个典型的持续集成周期包括以下几个步骤:

  1. 持续集成服务器不断从版本控制服务器上检查代码状态,看代码是否有更新。
  2. 如果发现代码有最新的提交,那么就从版本控制服务器下载最新的代码。
  3. 等代码完全更新以后,调用自动化编译脚本,进行代码编译。
  4. 运行所有的自动化测试。
  5. 进行代码分析。
  6. 产生可执行的软件,能够提供给测试人员进行测试。

如果其中任何一个步骤失败,就表示该Build失败,持续集成服务器会给予相应的反馈。一般来说,持续集成服务器会有相应的管理界面,可以看到 Build的状态以及相应的信息,如果Build失败,可以查看原因,是编译失败还是测试失败。或者在每次Build后,持续集成服务器发邮件通知,从邮 件中可以看到最新Build的状态。当然,也可以自定义反馈方法,比如在ThoughtWorks中国,有个团队的持续集成反馈就是火山灯,黄色表示正在 进行Build,绿色表示Build成功,而红色则表示Build失败,一旦发现灯变红了,所有人都不能提交代码,而应该尽快修复该Build。还有一个 团队更有创意,用语音来进行反馈。如果Build成功,就会有语言提示说“Build XXXX成功”,如果失败,就会有提示“Build XXXX失败,是由XXX提交的”,被念到名字的成员就得停下来修复这个Build。

  持续集成实践的目的不是减少Build失败的次数,而是尽早发现问题,在最短的时间内解决问题,减少风险和浪费。如果想尝试持续集成,首先需要的是持续集 成服务器,比如CruiseControl或者VSTS;然后需要把现有的Build自动化,比如写Ant脚本;最后就是在持续集成服务器上进行配置,比 如配置版本控制,集成间隔时间,如何部署,如何反馈等。

 

转自:http://www.cnblogs.com/blusehuang/archive/2008/01/20/continuous_integration.html

分享到:
评论

相关推荐

    3.Jenkins持续集成简介

    3.Jenkins持续集成简介3.Jenkins持续集成简介3.Jenkins持续集成简介

    Jenkins Maven Svn tomcat 持续集成实战

    3. Jenkins持续集成简介 4 4. 持续集成意义 5 5. 持续集成组件 5 6. Jenkins安装部署 6 7. Jenkins配置演示 7 8. Jenkins手动构建 13 9. Jenkins脚本自动化 15 10. 自动部署脚本 16 11. Jenkins插件安装 17 12. ...

    Jenkins持续集成引擎的前身是Hudson是一个可扩展的持续集成引擎.rar

    Jenkins是一个[开源软件]项目,是基于[Java]开发的一种[持续集成]的流程化的工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。 Jenkins的特点: 开源的java语言开发...

    持续集成:软件质量改进和风险降低之道

    资源名称:持续集成:软件质量改进和风险降低之道内容简介: 《持续集成:软件质量改进和风险降低之道》全面深入地讨论持续集成的各个方面,介绍了一种增加项目可见性、降低项目失败风险的有效实践。此外,还介绍了...

    jenkins集成部署学习视频-百度云

    互联网主流网站部署的流程 3.jenkins持续集成简介 4.jenkins持续集成MAVEN讲解 5.Jenkins持续集成JOB工程设置 6.jenkins持续集成网站构建实战 7.Jenkins持续集成自动化部署一 8.Jenkins持续集成自动化部署二 9....

    在持续集成中使用RationalBuildForge和RationalSoftwareAnalyzer集成来提升代码质量

    本文内容包括:持续集成简介RationalBuildForge产品概述RationalSoftwareAnalyzer产品概述配置BuildForge与RSAR集成创建BuildForge项目运行RSAR代码分析RSAR代码分析报告解读结束语参考资料本文从实践出发介绍如何在...

    企业持续集成成熟度模型简介

    (JeffreyFredrick目前是开源持续集成工具CruiseControl的开发和维护者之一)===========================================================当今软件...

    利用RationalTeamConcert在敏捷开发中进行持续集成

    内容概述源代码管理和版本控制构建服务器和自动构建自动构建测试自动报告,保证持续集成过程结论参考资料简介: 本文将介绍如何利用RationalTeamConcert(RTC)在敏捷开发过程中进行持续集成。详细说明了如何在RTC...

    OSTC2015-马全一:使用Docker构建持续集成服务

    主题:使用Docker构建持续集成服务 演讲人:马全一,Docker中文小区创始人 演讲简介:介绍如何使用 Docker 构建企业的持续集成服务,目前几款开源工具 Jenkins、Drone 和 Go 等的对比。

    持续集成工具hudson配置和使用介绍

    Hudson 是一种革命性的开放源码 CI 服务器,它从以前的 CI 服务器吸取了许多经验教训。Hudson 最吸引人的特性之一是它很容易配置:很难找到更容易设置的 CI 服务器,也很难找到开箱即用特性如此丰富的 CI 服务器。...

    持续集成之Jenkins+Gitlab简介[一]

    持续集成是指开发者在代码的开发过程中,可以频繁的将代码部署集成到主干,并进程自动化测试持续交付指的是在持续集成的环境基础之上,将代码部署到预生产环境在持续交付的基础上,把部署到生产环境的过程自动化,...

    Jenkins持续集成应用.docx

    1. Jenkins简介 1 2. Jenkins部署 1 2.1. 软硬件环境需求 1 2.2. Rancher运行 1 2.3. Docker运行 3 2.4. Linux下安装 3 3. Jenkins管理 5 3.1. 全局工具 5 3.1.1. JDK安装配置 5 3.1.2. Maven 安装配置 7 3.1.3. k8s...

    openshift-nexus-svn

    JCMS 9 新特性的阅读与应用:12/23/2014 持续集成简介:Jenkins、单元测试、...... 12/24/2014 Git培训在 spring-jboss-picketlink 应用程序中JBOSS EAP 5.2 应用服务器简介:12/26/2014 使用 Spring Security + ...

    python-testing-ci

    Python自动测试和持续集成简介 贡献 我们欢迎您为改进本课程而做出的所有贡献! 如果您在此过程中有任何疑问,疑虑或遇到任何困难,维护人员将竭尽所能为您提供帮助。 我们想请您熟悉我们的《 ,并查看有关正确格式...

    张燎原从持续交付到业务创新阿里巴巴研发效能实践日.pdf

    同时,他热衷编写代码和开源,涉及软件设计、测试驱动开发、代码重构、遗留代码的维护和持续集成及交付。 内容简介:精益软件开发的目的是,持续高质量的交付价值,通过本次分享,受众可以了解到: 系统化思考:...

Global site tag (gtag.js) - Google Analytics