资料参考
介绍
什么是持续集成(Continuous Integration)
持续集成(CI)是一种实践,旨在缓和和稳固软件的构建过程。在整个软件开发生命周期内,它主要用于保证代码质量,确保尽早遇到问题(如代码缺陷),避免问题在软件开发周期晚期变复杂时才被发现。CI的作用主要有如下几个方面:
- 软件构建自动化。
- 构建可持续的自动化检查。
- 构建可持续的自动化测试。
- 生成后后续过程的自动化。
组件
实现CI的上述功能,需要三个组件:
- 用 Ant 或 Maven 等工具建立的自动构建过程。
- 一个代码存储库,比如 CVS 或 Subversion。
- 一个 CI 服务器,比如 Hudson。
hudson介绍
Hudson 是一种革命性的开放源码 CI 服务器,它从以前的 CI服务器吸取了许多经验教训。Hudson最吸引人的特性之一是它很容易配置:很难找到更容易设置的 CI 服务器,也很难找到开箱即用特性如此丰富的CI 服务器。Hudson 容易使用的第二个原因是它具有强大的插件框架 ,所以很容易添加特性。例如,一个 Hudson 插件可以随时间的推移跟踪FindBugs 和代码覆盖。它还可以报告测试结果的趋势(来自 JUnit 或
TestNG? )以及构建结果和对应的执行时间。有人调查过,Hudson是目前使用最多的CI服务器。
工作原理

构建过程
- 触发构建--手动、代码更新、定制时间。
- 更新代码--Svn、Git、CVS。
- 构建--执行 Shell、执行 Windows 批处理、使用Ant、使用Maven。
安装
- 安装sun-java6-jdk,设置环境变量JAVA_HOME
- 安装tomcat6
- 安装 ant (optional)
- 在hudson官网下载hudson.war,放到tomcat/webapps下。访问http://localhost:8080/hudson,进入hudson的启动页面。注:使用sudo apt-get install tomcat6时,将hudson.war放在/var/lib/tomcat6/webapps目录下。
- 默认在/usr/share/tomcat6/.hudson下建立hudson的主目录。注意权限问题。
通用配置
系统管理
用户配置
选中系统设置-启用安全 ,进行用户配置
- JNLP节点代理的TCP端口选项中选择“Disable”。
- 访问控制-安全域
- 选择“Hudson专有用户数据库”:使用Hudson自己的用户列表验证, 而不是外部系统代理. 这适用于没有用户数据库小范围的设定. 建立的用户配置信息保存在HUDSON_HOUME/users下。
- 允许用户注册:如果勾选上,则表示允许用户自己注册一个新账号,通过点击页面右上角的注册链接进行操作。取消这个选框表示禁止任意注册新账号。 当这个选框被取消,就必须使用系统管理员来创建账号。
- 授权策略-安全矩阵
- 需要先注册一个admin用户(与角色名称相同),赋予全部的权限以便检验,否则我们将无法管理hudson。
- 默认会有一个匿名用户角色,表示未登录用户的访问权限,你可以不授权或只授予read权限。
- 添加用户/组:输入一个名称,然后点击添加,这里实际上是先建立一个角色,因为这时用户并不存在。然后注册一个相同名字的用户。
- 授权策略-项目矩阵授权策略
- 这个授权模型扩展自"安全矩阵",允许把下面的ACL(访问控制列表)矩阵附加到每个项目定义中(在Job配置页面). 就是说,除了可以在这里进行全局授权外,还可以在JOB中进行配置。
- 任务设置-启用项目安全:这里只能对当前的JOb进行授权配置,同样的,这里也是创建角色,用户需要自己注册或管理员进行创建。如果“系统设置”与“JOB设置”中存在相同的角色,则权限取并集。
- 反设置
- 有时候会出现这样的情况,就是虽然创建了角色,但是没有勾选上“允许用户注册”,这时就无法控制hudson了,这时可以通过如下修改,开启“允许用户注册”。
- 在$HUDSON_HOME环境变量对应的文件夹下config.xml,修改true 元素为false。重启hudson,这时候的Hudson又回归到无认证模式,任何人都能拥有该系统的全部权限。
创建构建任务
配置JOB_WORKSPACE
- 构建时使用的目录,也就是从代码仓库中取得的代码所要保存的路径,默认路径为:HUDSON_HOME/jobs/$jobname/workspace
- job的配置中,所有涉及到路径的配置,都是基于JO