专栏首页张善友的专栏基于 Jenkins 快速搭建持续集成环境

基于 Jenkins 快速搭建持续集成环境

什么是持续集成

随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题。尤其是近些年来,敏捷(Agile) 在软件工程领域越来越红火,如何能再不断变化的需求中快速适应和保证软件的质量也显得尤其的重要。

持续集成正是针对这一类问题的一种软件开发实践。它倡导团队开发成员必须经常集成他们的工作,甚至每天都可能发生多次集成。而每次的集成都是通过自动化的构建来验证,包括自动编译、发布和测试,从而尽快地发现集成错误,让团队能够更快的开发内聚的软件。

持续集成的核心价值在于:

  1. 持续集成中的任何一个环节都是自动完成的,无需太多的人工干预,有利于减少重复过程以节省时间、费用和工作量;
  2. 持续集成保障了每个时间点上团队成员提交的代码是能成功集成的。换言之,任何时间点都能第一时间发现软件的集成问题,使任意时间发布可部署的软件成为了可能;
  3. 持续集成还能利于软件本身的发展趋势,这点在需求不明确或是频繁性变更的情景中尤其重要,持续集成的质量能帮助团队进行有效决策,同时建立团队对开发产品的信心。
持续集成的原则

业界普遍认同的持续集成的原则包括:

1)需要版本控制软件保障团队成员提交的代码不会导致集成失败。常用的版本控制软件有 IBM Rational ClearCase、CVS、Subversion 等;

2)开发人员必须及时向版本控制库中提交代码,也必须经常性地从版本控制库中更新代码到本地;

3)需要有专门的集成服务器来执行集成构建。根据项目的具体实际,集成构建可以被软件的修改来直接触发,也可以定时启动,如每半个小时构建一次;

4)必须保证构建的成功。如果构建失败,修复构建过程中的错误是优先级最高的工作。一旦修复,需要手动启动一次构建。

持续集成系统的组成

由此可见,一个完整的构建系统必须包括:

  1. 一个自动构建过程,包括自动编译、分发、部署和测试等。
  2. 一个代码存储库,即需要版本控制软件来保障代码的可维护性,同时作为构建过程的素材库。
  3. 一个持续集成服务器。

Jenkins是由Sun的前员工开发的,它的根基是Java,但也可以用在非Java的项目里,比如PHP、Ruby on Rails、.NET。在.NET项目里,你除了Jenkins之外还要熟悉另一样工具:MSBuild。Visual Studio用MSBuild构建.NET项目。MSBuild所需的仅仅是一个脚本,在脚本中指定要执行的target。项目中的.csproj和.vbproj 文件都是MSBuild脚本。下面的几篇文章介绍如何使用Jenkins 快速搭建持续集成服务器。

用MSBuild和Jenkins搭建持续集成环境(1)

用MSBuild和Jenkins搭建持续集成环境(2)

Create a Mono C# Buildserver using Jenkins and GitHub

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 移植Windows自宿主WCF服务到Linux/Mono2.8

    Windows服务是这些后台程序、后台服务的正规名词。Windows服务的运行可以在没有用户干预的情况下,在后台运行,没有任何界面。通过Windows服务管理器...

    张善友
  • 单元测试模拟框架:Nsubstitute

         Nsubstitute是一个开源的框架,源码是C#实现的。你可以在这里获得它的源码:https://github.com/nsubstitute/NS...

    张善友
  • 即将到来的Powershell 2

    在即将发布的Windows 7和其服务器产品Windows Server 2008 R2将内置PowerShell 2.0版本的解析器。与此同时,Windows...

    张善友
  • 新年新气象,腾讯云开发者平台推出持续集成(beta)功能

    在这万物更新的时节里,腾讯云开发者平台正式推出持续集成(beta)功能,帮助开发者提高项目的交付效率和质量。

    CODING
  • 互联网中小型企业的持续集成CICD

    本文来自作者 SoftwareLuke 在 GitChat 上分享 「互联网中小型企业的持续集成CICD」 互联网研发的世界里唯快不破、迭代速度往往很快。在快速...

    CSDN技术头条
  • 高级信管 | 软件测试

    软件测试可分为单元测试、集成测试、确认测试、系统测试、配置测试、回归测试等类别。_______主要用于检测软件的功能、性能、和其它特性是否与用户需求一致。

    小团子
  • 研发:jenkins ios应用打包

    持续集成的目的,就是让产品可以快速迭代,同时还能保持高质量。它的核心措施是,代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。

    heidsoft
  • 「应用架构」 EA874系列:企业应用集成概述

    有预测称,公司在应用程序集成方面的支出将超过目前的支出。云、移动、社交和信息等力量之间的联系将有助于企业推动业务流程创新和改进,但也会使要集成的应用程序、设备、...

    首席架构师智库
  • 系统架构师论文-企业应用集成的实践

    为了向铁路各部门用户提供高可用、整合的信息,受铁道部科技司委托,我单位承担了“信息应用集成的研究”这一项目的研究和开发工作。本人作为该项目的负责人之一,担任了方...

    cwl_java
  • 互联网中小型企业的持续集成

    互联网研发的世界里唯快不破、迭代速度往往很快。在快速的发展迭代中,如何让项目产品平稳的落地,就需要有完善可靠的持续集成 CICD 和 DevOps 方案。

    DevOps时代

扫码关注云+社区

领取腾讯云代金券