持续集成(CI)- 基础

持续集成(Continuous Integration)在多人的项目中有很重要的作用,本次把这方面的知识归总一下,为相关的实践提供一些参考。

CI定义和优点

参考大师的定义: http://www.martinfowler.com/articles/continuousIntegration.html

持续集成作为一个很好的开发实践,主要有如下方面的一些价值:

  • 减少风险
  • 减少重复过程
  • 在任何实践、任何地点生成可部署的软件
  • 增强项目的可见性
  • 对开发团队的软件产品建立起更强大的产品信息

CI的开发流程

1  从代码管理器签出源文件

2  修改代码

3  编译代码

4  遇到错误,转到2继续修改直到达到预期

5  运行单元测试,期望所有的测试绿色(通过)

6  单元测试出错,转入2

7  重构代码,按照规范增强可读性,转入2

8  完成后签入代码

9  CI服务器监控到变化,自动获取代码

10  CI服务器自动编译代码

11  CI服务器运行单元测试、规范检查、集成测试等各种测试

12  CI服务器进行反馈,使相关人员知道构建状态,然后进行修改或继续

CI的Build类型


Build类型


用途


Continuous/Incremental


Runs when code is checked in. Does a quick compile and unit test.


Daily/Nightly


Does a compile and full suite of unit tests and possibly additional testing such as FitNesse.


Weekly


Does a compile, full unit testing, and additional testing such as FitNesse.


Release


Creates an install set and then runs and tests the inst all process.


QA


Creates a build just for the QA team.


Staging


Builds and copies assemblies to a staging server.

时间: 2024-10-27 21:51:27

持续集成(CI)- 基础的相关文章

基于Docker容器的,Jenkins、GitLab构建持续集成CI

** 开发者将代码提交(push)到GitLab后,GitLab通过Hook通知jenkins,jenkins自动从GitLab中获取项目最新的源码进行集成和发布. 基于Docker,创建一个私有GitLab的容器,创建一个jenkins的容器** 1. 构建私有的GitLab容器 https://about.gitlab.com/installation/#centos-7,直接安装gitlab,不借助docker 通过docker-compose的方式安装gitlab,docker-comp

持续集成(CI)工具------Hudson/Jenkins(Continuous Integration)安装与配置详解

本文允许转载,但请标明出处:http://blog.csdn.net/wanghantong/article/40985653/, 版权所有 文章概述: 一. 描述了持续集成工具Hudson的安装与配置 二. 描述了Git .Maven环境的安装与配置 三. 描述了扩展邮件通知及其配置方法 四. 描述了jira的配置 一.Hudson简介 Hudson是Jenkins的前身,是基于Java开发的一种持续集成工具,用于监控持续的软件版本发布/测试项目 下载地址:http://eclipse.org

Linux下EclipseCDT工程和TFS的持续集成CI实践

在Linux下使用TFS自动构建,需要自动执行连接tfs服务器的操作,命令行文件包TEE-CLC-10.1.0.2011121402.zip,下载地址:http://www.microsoft.com/en-us/download/details.aspx?id=25125 下文是定制TFS的工作流程的方法进行定制 How to Build Linux Code with TFS 2010 Team Build http://www.richard-banks.org/2010/11/how-t

以review 系统为核心的新一代持续集成

传统的持续集成(CI)系统被设计成作业的流水线.你可以有一个同行评审,然后开始构建作业,然后是单元测试作业,然后是集成测试作业,然后是性能测试作业,诸如此类. 每个作业都是由前一个作业的成功完成事件触发的,而第一个作业则是由版本控制系统中源代码文件的变更事件来触发的.当然,如果你的目标是多个二进制平台,或者如果你正在构建的是一组组件,以此来测试整个的应用程序,那么它还会更加的复杂. 那么如果有任务失败了会怎样?Jez Humble 和 David Farley 在持续交付中认为,你首先需要遵循这

谈谈持续集成,持续交付,持续部署之间的区别

经常会听到持续集成,持续交付,持续部署,三者究竟是什么,有何联系和区别呢? 假如把开发工作流程分为以下几个阶段: 编码 -> 构建 -> 集成 -> 测试 -> 交付 -> 部署 正如你在上图中看到,「持续集成(Continuous Integration)」.「持续交付(Continuous Delivery)」和「持续部署(Continuous Deployment)」有着不同的软件自动化交付周期. 持续集成 持续集成是指软件个人研发的部分向软件整体部分交付,频繁进行集成

使用 TeamCity 实现持续集成(CI)

原文同步至 https://waylau.com/continuous-integration-with-teamcity/ 持续集成(Continuous Integration),也就是我们经常说的 CI,是现代软件开发技术的基础.本文论述了如何使用 TeamCity 持续集成工具来实现项目的持续集成. 为我们什么需要 CI 目前,CI 已在当前业界被许多软件开发团队所采用,是一种在整个软件开发生命周期内保证代码质量的常见做法.它是一种开发实践,旨在帮助开发团队应对软件开发过程中的如下挑战:

Flex 持续集成(CI)实践(Hudson)

项目开始后,持续集成会是一个关键的环节,本文针对Flex的开发的持续集成进行了一个实战,这些相关的工具和功能还是很强大的,通过组合这些工具,可以构建一个编译.单元测试.集成测试.代码检查等系列工作的CI服务,为后续的项目持续发展打下一定的基础. 运行Hudson http://hudson-ci.org 上下载文件 执行: java - ja r hudson.war 或 java -jar hudson.war --httpPort=8888 浏览器输入http://localhost:808

敏捷软件开发基础: 持续集成环境的构建

敏捷意味着什么 Agile可以说是近几年来软件工程界最"热"的一个单词,关于它的文章.书籍.讨论不 计其数.尽管如此,却仍有大量的从业者对Agile存有误解和困惑.Agile到底意味着什么 呢?仅仅是一些漂亮.时髦的宣传吗?到底怎样才算是Agile呢?做到了Agile能为软件开发团队带来什么好处呢?类似的问题还有很多. Agile其实根本不是一个什么新鲜.时髦的东西,它已经存在了数十年之久了.在这数 十年中,那些取得成功的软件开发团队无一不是敏捷开发团队.他们在自己的软件开发过 程中大

Android项目持续集成实践之Gitlab CI

简介 持续集成(Continuous integration)是一种软件开发实践,即团队开发成员经常集成它们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成.每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误. 入门 下面我们来简单介绍,如果通过Gitlab CI来对Android项目持续集成. 一言不合,先甩给你一个项目链接:https://gitlab.com/snowdream/Citest 项目很简单,就是一个默认创建的Andro