CruiseControl是CIserver的老者,诞生已是多年,在很多方面,CruiseControlserver已经成为持续集成实践的同义词。而如今,CruiseControl已发展成为一个家族式系统,包含CruiseControl.java、CruiseControl.net、CruiseControl.ruby等适应不同语言环境的实现,其强大的插件和扩展能力也是诸多同类系统无法比你的。而在这里,我仅仅介绍该家族的本家CruiseControl.java,即CruiseControl。CruiseControl是一个不错的持续集成server,只是国内社区的普遍反应是:它的配置太麻烦,无从下手。从本篇文章開始,我将逐步介绍CruiseControl的环境搭建与配置,以及持续集成中的一些实践。我们将从最简单的使用方式(stand-alone)開始,以便您能够高速開始您的持续集成之旅,而不必面对“千奇百怪”的问题。
好!先让我们简单搭建个持续集成server再说吧


一、我使用的CruiseControl版本号

  1. CruiseControl是一个java开源项目,我将以它近期的一个分支版本号来介绍它的使用。CruiseControl近期公布的版本号是V2.7.1。这个分支版本号就是在V2.7.1基础之上。
  2. 这个分支版本号包括一个Dashboard,能够方便地看到各项目的构建状态。
  3. 这个分支版本号当然还支持多个Build Loop,你能够在多个机器上部署独立的Build Loop,从而建立你自己的Build Grid。

二、得到CruiseControl的分支版本号

要得到这个分支版本号,你能够使用subversion不用不论什么password从CruiseControl的Repository中检出。命令例如以下:
svn checkout https://cruisecontrol.svn.sourceforge.net/svnroot/cruisecontrol/branches/cce/cruisecontrol/

三、构建CruiseControl

0.    你机器上至少要安装有JAVA 1.4,并在环境变量中设置有JAVA_HOME,并把java/bin增加到path中。CruiseControl自带了ANT,所以不用事先安装。

  1. 从源码中构建CruiseControl

假设从源代码中构建CruiseControl,要确保你的机器能够訪问互联网。由于构建过程中要检查一些license。另外,最好有SVN client软件,由于在构建时,它会用到javahl。
       在刚刚checkout出来的CruiseControl文件夹下,有一个批处理文件,名为release.bat。执行这个批处理文件,你会在target文件夹下发现一个压缩文件,名这cruisecontrol-bin-2.7.2-dev.zip。将其解压到一个文件夹,我们这里解压到C盘根文件夹下。解压后,文件夹结构例如以下:

      2.  直接使用已构建完毕的CruiseControl 
假设你不想做这一步,也能够在binaryrelease文件夹下发现解压后的文件,把它们复制到对应的文件夹下也能够。

四、执行CruiseControl

CruiseControl能够执行在多种应用server中,当然,它自己也捆绑了一个开源应用server,那就是Jetty 6。为了尽快建立我们的环境,我们这里临时使用它自己捆绑的Jetty,高速開始我们的持续集成之旅。
   直接执行CruiseControl文件夹下的CruiseControl.bat,它会自行启动Jetty6,当从Console中看到它启动完毕后,你就能够在浏览器中訪问http://localhost:8080/dashboard,此时你会看到一个名为connectFour的演示样例项目在Dashboard上显示了。

(假设你足够快的话,你会发现Dashboard 上的小方块是从灰色变成深绿色的。为什么呢?我们以后再说。)
“绿色”表示该项目构建通过。假设要是有多个项目的话,应该看到多个小方块。

点击“Builds” Tab页,就到了 Builds 页。这一页会以列表的方式显示全部的项目。当前仅仅有一个项目,所以在列表中仅仅有一行,例如以下图所看到的:

 在该页面上点击某个项目时,会打开Build Detail页,显示该项目近期一次Build的信息。页面右側是该项目全部历史构建信息。你会发现,这时connectFour项目有两个构建历史版本号,一个是刚刚构建完毕的,还有一个是两年前的构建。这些信息是来自于CruiseControl对该项目的日志文件。此时,点击这两个构建结果中的不论什么一个,都会打开该次构建的Build Detail页面,显示相关的构建历史信息。例如以下图所看到的:

我们将在下一篇文章中简要介绍CruiseControl的配置文件,为您增加自己的构建项目做准备。

搭建你的持续集成server - CruiseControl step by step(1)相关推荐

  1. 持续集成:CruiseControl.NET + VisualSVN.Server

    刚换了工作,有需要搭建一套持续集成的平台,做一下总结. 首先是我用到的工具: 上面缺少了Microsoft Fxcop,可以用来做代码校验,不过实际情况暂时还没有用到.主要的需求目前是,使用已发布的稳 ...

  2. 使用CruiseControl搭建自己的持续集成环境

    在敏捷开发过程中我们会实施很多优秀实践,比如站立式会议.结对编程.持续集成等等.本文主要讲解如何运用CruiseControl搭建你的持续集成环境. 一:CruiseControl介绍 CruiseC ...

  3. 使用Jenkins搭建iOS/Android持续集成打包平台

    http://debugtalk.com/post/iOS-Android-Packing-with-Jenkins/ http://debugtalk.com/post/iOS-Android-Pa ...

  4. gitlab 目录tag_【环境搭建】gitlab-ci(持续集成)

    背景 服务和服务器开始多起来了,一个个搞效率太低,所以准备用持续集成来提高效率 原理 gitlab-ci与ci-runner的关系 push到gitlab之后,触发GitLab-CI,GitLab-C ...

  5. Docker+Jenkins持续集成环境(1)使用Docker搭建Jenkins+Docker持续集成环境

    本文介绍如何通过Jenkins的docker镜像从零开始构建一个基于docker镜像的持续集成环境,包含自动化构建.发布到仓库\并部署上线. 0. 前置条件 服务器安装docker,并启动docker ...

  6. 敏捷持续集成工具CruiseControl

    持续化集成工具便是服务于敏捷软件开发的一个系列.它主要将原本分散,无序的工作流程,通过工具软件有机的组织起来,并且在组织的过程中,参与开发设计测试的各个部门的人员都能从中获取到自动化方面的优惠.使得团 ...

  7. jenkins+git+maven搭建项目自动化持续集成

    2019独角兽企业重金招聘Python工程师标准>>> 1.概要说明 为了开发人员和测试人员的解耦,让开发和测试流程更加便捷,所以采用jenkins+git+maven这套可持续性集 ...

  8. 搭建GitLab+Jenkins持续集成环境图文教程

    GitLab是一个代码仓库,用来管理代码.Jenkins是一个自动化服务器,可以运行各种自动化构建.测试或部署任务.所以这两者结合起来,就可以实现开发者提交代码到GitLab,Jenkins以一定频率 ...

  9. CruiseControl.NET持续集成实践

    前言 团队开发需要进行集中的项目文件管理与有效的协调,我们采用源代码管理工具协助我们管理,卓有成效.限定重要文件的访问权限.使用悲观锁杜绝成员同时编辑同一份文件.不允许长时间迁出文件等规则让我们在某一 ...

最新文章

  1. 基于sqlcmd命令行工具管理SQL server
  2. 定义派生类拷贝构造函数
  3. kail linux安装软件提示“无法定位软件包”解决方法
  4. 拦截推送信息_Android10.0公测版H2OS For OnePlus 6T第1版已推送更新
  5. 前端学习(2387):组件库使用说明
  6. mysqld_multi stop 不能停掉mysql
  7. tomcat启动报错,找不到相应的 queue,从而引发内存泄漏
  8. python画猴子_Python学习笔记(1)
  9. 这是一个无效的源路径/url
  10. spark性能调优05-troubleshooting处理
  11. windows:查询本机ip地址方法
  12. CC2530采集重力加速度MMA7455的值
  13. Python基础综合训练三(tkinter牛刀小试)
  14. java中put是什么意思_关于java:请求参数和PUT方法
  15. vue打包后在ie浏览器下访问报语法错误
  16. Ubuntu Server 18.04 WiFi配置静态ip
  17. Python Flask开发简单http api接口 示例
  18. 球体与简单几何体的切接问题
  19. ubuntu下完全卸载 opencv库 详细教程
  20. Hibernate的集中查询方式 : hql查询,QBC查询和QBE查询

热门文章

  1. 【cocos2d-x从c++到js】08:JS脚本语言的优势与一些问题
  2. 图解exports 和 module.exports
  3. bootstrapValidator对于隐藏域验证和程序赋值即时验证的问题
  4. 数据库索引如何工作?原理
  5. leetcode9. 回文数
  6. Golang 大杀器之跟踪剖析 trace(转载)
  7. centos 7 mysql 导入_linux centos7.3导出、导入、Mariadb(MySQL)数据库命令
  8. 取景框图片 小程序_微信小程序实现身份证取景框拍摄
  9. SpringMVC 方法三种类型返回值总结,你用过几种?
  10. 多线程的那点儿事(之数据同步)