搭建持续集成首先要了解什么是持续集成,带着明确的目标去搭建持续集成环境才能让我们少走很多弯路。持续集成(Continuous integration)简称CI,是一种软件开发的实践,可以让团队在持续集成的基础上收到反馈并加以改进,不必等到开发的后期才寻找和修复缺陷。当然要明白的是持续集成环境的搭建也不是一劳永逸的,随着软件项目复杂度的增加,持续集成的环境同样要加以维护以确保集成环境的可靠性。

  1. 持续集成的重要要素:1.统一的代码库。
  1. 2.CI服务器
  1. 3.自动化测试和构建的脚本
  1. 4.Slaves
  1. 持续集成的流程:CI服务器控制持续集成的整个过程,轮询代码库更新,根据预定义的脚本进行项目的构建,服务器将任务分配到Slave端。这就是整个持续集成的过程,我们需要根据我们的项目需求,制定好一个完善的持续集成方案,然后根据方案选择CI服务器和版本管理软件,我们的项目选择了Jenkins+Github的持续集成环境,这也是我要主要和大家讲述的。
  1. 为什么要选择Jenkins
  1. Jenins是现在非常流行的持续集成CI服务器,这与它的前身Hudson也有着很大的关系,Jenkins易于安装,不需要数据库的支持,直接通过Web界面进行配置,而且集成了RSS/Email的通知机制,支持分布式构建,具有丰富的插件,这些都是Jenkins相比其他持续集成服务器的优势所在。
  1. 对于版本控制软件的选择要看项目需要了,可能是SVN也可能是Git,一般来说Jenkins都有提供插件支持,下面讲解一下Jenins+Github持续集成环境搭建的细节。
  1. 这个持续集成环境构建的主要流程就是Jenins会在后台运行,轮询版本控制的存储库,当发现版本库出现变更,就会通过预定义的构建脚本进行项目的构建,Jenkins会根据项目需求将构建的任务分配到Slave端。一般的项目构建过程主要分为自动化编译和自动化测试两个阶段,这同样是你脚本发挥作用的阶段。
  1. 1.Jenkins安装
  2. 进入Jenkins官方网站下载最新的JenkinsJenkins提供war包的下载和各种操作系统的安装文件,选择war包即可。
  3. Jenkins的启动方法有两种:
  4. 第一种是使用tomcat直接打开,就是把jenkins.war放入tomcat下的 webapps目录下,当启动jenkins时,就会自动在webapps下建立jenkins目录。然后再浏览器的地址栏输入http://localhost:8080/jenkins
  5. 另一种方法要确保系统中安装了jdk,并且配置了环境变量,检测方法就是在命令行输入java回车后有多行的命令符提示。直接在命令行输入java -jar jenkins.war即可启动jenkins,默认会运行在8080端口,切换到浏览器的地址栏输入http;//localhots:8080,localhost可以改成ip地址。
  6. 看到Jenkins的页面说明jenkins已经部署成功了。2.插件安装
  7. "系统管理->插件管理"下可以看到Jenkins缺省安装了CVSSubversionMavenSSH,这些主要是版本控制的软件的相应插件,不过我们使用的是GitHub进行版本控制,所以要在可选插件中选择安装Git pluginGitHub plugin插件,安装之后重新启动就可以看到新的插件已经生效。3.环境配置
  8. 进入"系统管理->系统设置"设置Jenkins的相关参数。主要是设置GitGitHub插件的参数,在Git下的Path to executable一栏添加本机的git.exe的路径,在Git plugin下的添加本地Gituser.nameuser.email的信息,在GitHub Web Hook下添加GitHub账户的相关信息。如果想要使用邮件的功能,需要在邮件通知的一栏添加SMTP服务器和邮箱的相关信息,添加后点击Test的按钮测试一下能否正常发送邮件,这一功能可以在后面的项目中使Email Notification功能得以正常使用。
  1. 4.构建项目
  2. 点击"新Job",输入"任务名称",选择"构建一个自由风格的软件项目",点击"OK"。系统自动进入"任务配置"界面。5.配置构建方法
  3. GitHub project中输入git地址。
  4.  
  5.  
  6. "源码管理->Git"下的Repository URL输入RepositoryGit地址(PS:可以选择分支)。

  1. "构建触发器"中选择"Build when a change is pushed to GitHub ""Poll SCM ",这两项的作用分别是当GitHub有版本库更新时触发Jenkins进行构建和定期检查版本库是否有更新,如果有更新则触发Jenkins进行构建。这里要注意Schedule语法,例如"*/2 * * * *"表示每隔2分钟检查一次。

  1. 点击增加构建步骤,选择Execute Windows batch command,并输入
  2. "%VS10COMNTOOLS%..\IDE\devenv.com" "%WORKSPACE%\Test.sln" /Build "Debug|Win32"devenv.comMSVC提供的命令行构建工具,这里的"%VS10COMNTOOLS%..\IDE\devenv.com"devenv.com的路径,如果没有配置响应的环境变量,构建的时候就会找不到路径,所以可以用devenv.com的实际路径代替。在"构建后操作"中可以添加发送邮件的相关信息。

  1. 点击保存,项目的配置就完成了,点击立即构建,Jenkin就会从github上将代码clone下来,这里我在github上存放了一个HelloWorldvs项目,所以我的命令行为"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.com" "%WORKSPACE%\HelloWorld\HelloWorld.sln" /Build "Debug|Win32",然后自动编译项目,如果构建成功会是蓝色标记,如果构建失败会是红色标记。

  1. 构建完成后可以在项目中看到项目构建的具体信息,如工作区、变更集和每次构建的控制台输出等。这就是一个基本的基于JenkinsGitHub的持续集成环境的搭建。
  1.  
  1. Tips: 1.对于刚接触Jenkins的同学可能有很多需要配置的地方不知道要怎么填,这时可以点击每一个填空后的?,就会弹出详细的提示。
  1. 2.官方的wiki是很好的入门教程https://wiki.jenkins-ci.org/display/JENKINS/Home
  1. 3.多多实践,多多查看Jenkins配置的使用方法~~
  1. 以上我说的方法都是比较简单的方法,可以方便你快速进行搭建,Jenkins的搭建有很多种方法,例如使用TomcatJava web等等,我在资源栏上传了一本英文版的介绍Jenkins的书,是官方推荐的书籍,讲的很详细,需要的可以去下载。另外Jenkins相关的资料非常少,想要快速解决自己遇到的问题的话可以去freenode的#jenkins这个频道,里面有挺多jenkins方面的专家,遇到一些不懂的问题或者是你不知道是否能实现的问题他们都能给你提供很好的建议。

构建基于Jenkins + Github的持续集成环境的更多相关文章

  1. Redhat上为java Maven项目构建基于Jenkins + Github的持续集成环境

    在Redhat enterprise 6.5 的服务器上,为在gutub 上的 java mvaen项目构建一个持续集成环境,用到了Jenkins.因公司的服务器在内网,访问外网时要通过代理,所以为m ...

  2. 基于 Jenkins 快速搭建持续集成环境--转

    源地址:http://www.ibm.com/developerworks/cn/java/j-lo-jenkins/ 持续集成是一种软件开发实践,对于提高软件开发效率并保障软件开发质量提供了理论基础 ...

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

      什么是持续集成 随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题.尤其是近些年来,敏捷(Agile) 在软件工程领域越来越红火 ...

  4. [Jenkins][GitHub]2 持续集成环境初探

    预计阅读时间:30分钟 部署环境:Jenkins ver. 2.61 + Centos7 + Java 1.8 参考链接: http://www.jianshu.com/p/22b7860b4e81 ...

  5. Jenkins 快速搭建持续集成环境

    持续集成概述 什么是持续集成 随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题.尤其是近些年来,敏捷(Agile) 在软件工程领域 ...

  6. Net 项目构建基于Jenkins + Github + Mono 的持续集成环境

    Net 项目构建基于Jenkins + Github + Mono 的持续集成环境 阅读目录 1 安装 2 配置 3 测试 在Redhat enterprise 6.5 的服务器上,为在gutub 上 ...

  7. jenkins + Git 搭建持续集成环境

    持续集成通过自动化构建.自动化测试以及自动化部署加上较高的集成频率保证了开发系统中的问题能迅速被发现和修复,降低了集成失败的风险,使得系统在开发中始终保持在一个稳定健康的集成状态.jenkins是目前 ...

  8. Linux下Jenkins+git+gradle持续集成环境搭建

    Linux下Jenkins+git+gradle持续集成环境搭建 来源:IT165收集  发布日期:2014-08-22 21:45:50 我来说两句(0)收藏本文   一.项目介绍 和 linux ...

  9. 在Redhat上为.Net 项目构建基于Jenkins + Github + Mono 的持续集成环境

    在Redhat enterprise 6.5 的服务器上,为在gutub 上的 .net 项目构建一个持续集成环境,用到了Jenkins和mono.因公司的服务器在内网,访问外网时要通过代理,所以在很 ...

随机推荐

  1. BZOJ 1455: 罗马游戏( 配对堆 + 并查集 )

    可并堆水题 --------------------------------------------------------- #include<bits/stdc++.h>   usin ...

  2. Android面试题整理(1)

    1.Activity的生命周期      onCreate(Bundle saveInstanceState):创建activity时调用.      onStart():activity可见时调用 ...

  3. 二维码类库--phpqrcode使用简介

    #载入类文件 include 'phpqrcode.php'; $value = '二维码内容'; $errorCorrectionLevel = 'L';//容错级别 L.M.Q.H $matrix ...

  4. The Hungarian algorithm Template

    The Hungarian algorithm with The adjacency matrix : 计算最大匹配问题 int n1, n2, m, ans; int res[MAXN]; bool ...

  5. Week7(10月21日)

    Part I:提问  =========================== 1.请为下图编写视图代码,视图中表单提交后,交给当前控制器和动作处理. 2.如何实现点击列标题排序功能? 3.分页时采用了 ...

  6. 上证A股股指跌破1900

    上证A股股指跌破1900 有钱的同学赶紧买哦,机会难得哈哈!

  7. 第五章:输入输出(IO)管理

     I/O设备概念: 指计算机内部除中央处理器和内存之外的全部设备,通常也称为外部设备.  I/O设备分类:   ·按交互对象分类: ·人机交互设备 ·与计算机或其它电子设备交互的设备 ·计算机间的同信 ...

  8. Java CopyOnWriteArrayList分析

    CopyOnWriteArrayList是一种线程安全的ArrayList,顾名思义,它会利用写时拷贝技术,它对共享对象做仅仅读操作的时候,大家都用一个共享对象,假设有可变的操作时,就会复制一份出来, ...

  9. Python笔记之基本的语法

    1 变量和赋值 Python是动态类型语言,不须要预先声明变量的类型.变量的类型在赋值的那一刻被初始化. Python变量名是大写和小写敏感的,即"cAsE"与"CaSe ...

  10. Qt同步线程(比较清楚,而且QMutex QMutexLocker QReadWriteLock QSemaphore QWaitCondition 每个都有例子)

    Qt同步线程 我们知道,多线程有的时候是很有用的,但是在访问一些公共的资源或者数据时,需要进行同步,否则会使数据遭到破坏或者获取的值不正确.Qt提供了一些类来实现线程的同步,如QMutex,QMute ...