持续集成

剥离CruiseControl dashboard控制台到Debian安装的tomcat6上

在前篇日志 如何剥离CruiseControl内置的Web控制台 中,我已经介绍过怎么剥离CruiseControl内置的控制台dashboard到tomcat6容器中。但那篇日志中介绍的是用下载压缩包方式安装的tomcat6,在这我向大家介绍一下如何用Debian包安装的tomcat6部署dashbaord控制台。

为什么这两种安装tomcat6的方法会给web部署带来异同呢?

阅读全部内容 »

Dashboard不能运行在Debian包安装的Tomcat6上?

前面的一篇日志中我已经介绍了如何把CruiseControl的dashboard Web控制台剥离到tomcat6上。但那时介绍剥离时用的是下载tomcat6压缩包然后解压的tomcat6,并没有Debian 自己提供的tomcat6安装包。或许你会问怎么不直接用Debian提供软件包安装呢?其实不是我不想,只是我实验过用

sudo aptitude install tomcat6

直接安装tomcat6,但是无论如何就是不能成功部署dashboard。 Confused

最终只能委曲求全,“另辟蹊径”了。

但今天同事也遇到这样的问题了,看来是时候解决这个问题了。

阅读全部内容 »

CruiseControl HgVersionParser: no match of

使用开源CruiseControl的时候,SCM工具是Mercurial(hg)。CC在收集hg库的修改集合信息的时候,解析hg的version总是出错。这个问题困扰我很长时间,昨天终于解决了。

阅读全部内容 »

如何剥离CruiseControl内置的Web控制台

背景介绍

出于各自不同的考虑:

  • 启用 Apache Tomcat 内置的 Java EE 安全性管理机制,以加强这些 Web 控制台的管理
  • 采用比 Jettery (cc内置的Web容器)  更强大的 Web 容器,使得 CruiseControl 构建循环不会受到 Web 控制台用户的影响。因为默认情况下,CruiseControl构建循环与宿主 Web 控制台的 Jetty 处于同一进程中。

CI集成人员需要将CruiseControl内置的两个Web控制台( http://localhost:8080/cruisecontrol/ 和 http://localhost:8080/dashboard/ ) 剥离出来,并运行在其他 Java EE 容器中,比如 Tomcat等。

移植Web 控制台到 Apache Tomcat 6.0.20 的步骤

如果你想用Debian 安装的tomcat6部署dashboard,请参照 剥离CruiseControl dashboard控制台到Debian安装的tomcat6上

阅读全部内容 »

velocity 未列入文档的秘密

Velocity小技巧

今天,在Velocity模板对i18n字符串进行处理,需要转换小写和将空格替换为下划线。一般情况下,从java代码中通过Context传递是最简单的,但是有的情况,不现实。在CC的模板中,就有这样的情况

下面是一个在模板中实现字符串转换的具体例子:

阅读全部内容 »

CruiseControl—confilg.xml

config.xml

config.xml是CruiseControl的核心配置,主要指明需要测试的项目名,项目的执行脚本,监听变更集,执行任务,以及任务完成后的后续操作。

阅读全部内容 »

CruiseControl—下载及安装

  • 最新稳定版本cruisecontrol-bin-2.8.2.zip ,   http://cruisecontrol.sourceforge.net/download.html
  • 解压刚下载的压缩包:        $ unzip cruisecontrol-bin-2.8.2.zip
  • 输入 $  echo  $JAVA_HOME  查看是否设置好环境变量
  • 启动CruiseControl,进入解压目录下,运行: $   . /cruisecontrol.sh
  • 在浏览器输入: localhost:8080/dashboard

CruiseControl 目录结构

  • cruisecontrol.sh      启动文件;
  • config.xml                 配置文件  (默认的配置文件名称);
  • apache-ant-1.7.0     是CruiseControl自带的ant环境,CruiseControl要借助ant完成一些指定的任务;
  • docs                          包括CruiseControl的使用文档和一个helloworld的使用范例;
  • lib                              是运行需要的jar包;
  • logs                          日志目录,构建时产生的log存储于此;
  • projects                    需要构建的项目所在目录,所有的构建项目在project均以项目名为目录(示例项目 connectfour)。
  • webapps                 web应用目录。CruiseControl内置了jetty作为web容器,可以通过http://localhost:8080/dashboard
  • artifacts                    输出目录,集成后生成的jar就保存在这里

CruiseControl —初体验

CruiseControl:简称CC,持续集成工具,主要提供了基于版本管理工具(如Git)感知变化或每天定时的持续集成,并提供持续集成报告、Email等等方式通知相关负责人,其要求是需要进行日构建的项目已编写好全自动的项目编译脚本(可基于Rake或Ant)

CruiseControl 有三个模块构成 :

  • 构建循环(Build Loop) :CC 的核心,负责触发构建周期,并通知构建结果
  • 老版本Web控制台(/cruiscontrol)
  • 新一代Web控制台(/dashboard) :用于取代老版本的cruisecontrol控制台