Hudson持续集成服务器帮助_第1页
Hudson持续集成服务器帮助_第2页
Hudson持续集成服务器帮助_第3页
Hudson持续集成服务器帮助_第4页
Hudson持续集成服务器帮助_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Hudson持续集成服务器帮助1 Hudson介绍1.1 Hudson简介Hudson 是一种革命性的开放源码 CI (持续集成)服务器,它从以前的 CI 服务器吸取了许多经验教训。Hudson 最吸引人的特性之一是它很容易配置:很难找到更容易设置的 CI 服务器,也很难找到开箱即用特性如此丰富的 CI 服务器。Hudson 容易使用的第二个原因是它具有强大的插件框架,所以很容易添加特性。例如,一个 Hudson 插件可以随时间的推移跟踪 FindBugs 和代码覆盖。它还可以报告测试结果的趋势(来自 JUnit 或 TestNG)以及构建结果和对应的执行时间。hudson主要用于:持续、自动

2、地构建/测试软件项目.监控Hudson 需要运行 java5或以上版本,容器Servlet2.4或以上的版本。一个典型的持续集成周期包括以下几个步骤:1. 持续集成服务器不断从版本控制服务器上检查代码状态,看代码是否有更新。2. 如果发现代码有最新的提交,那么就从版本控制服务器下载最新的代码。3. 等代码完全更新以后,调用自动化编译脚本,进行代码编译。4. 运行所有的自动化测试。5. 进行代码分析。6. 产生可执行的软件,能够提供给测试人员进行测试。1.2 Hudson名词解释· 持续集成(CI) :”Continuous Integration is a software deve

3、lopment practice where members of a team integrate their work frequently.Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. Many teams find that this approach leads to significantly reduced integration problems and allows a team t

4、o develop cohesive software more rapidly.”-引用 · 任务(Job) :在hudson上任务是一个静态的概念,任务有配置信息、执行步骤、任务通知邮件、任务当前/历史状态、趋势等信息。任务之间,可以定义串行、并行的关系。 · 构建(Build) :构建对应于任务的一次执行,构建拥有log、归档信息(archive)、测试报告、持续时间、执行结果、状态等信息。 · 快速构建(Quick_build) :快速构建对应于一个需要尽快反馈结果的任务,通常反馈给RD,报告本次构建是否成功,以便及时发现问题。Quick build通常只

5、运行编译、单测、以及部分QA的用例(重要且运行时间短)。Quick build 成功后会触发slow build。快速构建一般时间在10分钟以内。 · 本地构建(Local_buidl) :RD在提交代码前,需在本地完成本次构建,本地构建一般包括编译、单测等。 · 慢速构建(Slow_build) :对应于一个需要全面覆盖保证质量的任务,通常反馈给QA/RD,会运行QA全部的用例、覆盖率统计、以及其他的一些验证。 · 模块任务 :模块任务是对于某个模块应用持续集成的一个流程。根据模块的复杂性、任务调度等需要,模块任务可以对应于一个或多个Job。多个Job可以配置成

6、串行、并行、串行+并行等方式。 · 节点(node) :对应于hudson上配置的一台机器。多个节点构成机器Grid。可以让任务在Grid内实时调度,也可以让任务限制在某个或几个node上运行。 1.3 hudson工作流程2 Hudson安装2.1 Hudson安装方法1(通用)下载最新版本,(它打包为一个 WAR 文件)。hudson官方网址: /将hudson.war包文件直接部署到servlet容器中,然后启动容器,在浏览器中输入:http:/localhost:8080/hudson/ 就会出现hudson的主界面。2.2 Hudson

7、安装方法2(baidu脚本)下载ftp:/ Hudson_install.sh脚本会安装使用8235端口作为hudson web服务的端口。安装成功后,即可通过http:/测试机:8235/hudson访问hudson。在测试机指定的安装目录下,会生成一个CI目录 作为CI平台的根目录。CI下的目录结构如下:2.3 Hudson slave node机器安装 : 当任务较多需要一台服务器资源不够时,可以添加新的机器作为slave,与hudson 服务器(master)一起构成机器Grid。 注:如果node的机器上没有安装jdk,则需要保证在Remote FS root下有jdk目录, 把JD

8、K6.0以上的版本放到该目录下。一定要保证多个node的环境一致,以便任务分发到各个node上执行均能正常。 2.4 Hudson 重启l Hudson项目:bb-game-:/home/work/hudson/l /home/work/hudson/CI/tomcat3 Hudson配置3.1 系统管理系统设置l 主目录,这里包含hudson要执行的任务所在工作区与相关配置信息。l 系统消息:填写一些说明信息l 执行者数量:能同时执行的任务数量,l 生成前等待时间:一个计划中的构建在开始之前需要等待选项中设置的秒数l SCM签出重试次数:如果从版本库签出代码失败,Hudson会按照这个指定的

9、次数进行重试之后再放弃.l 启用安全:设置hudson的登录规则,默认登录为匿名登录,l Global properties:设置一些全局变量,类似于windows的环境变量l JDK installations:设置JDK的安装路径l Shell executable:设置window shell命令l Ant installation:设置ant 的安装路径l mave installation设置mave的安装路径l cvs executable:设置cvsnt执行进程的路径(cvs.exe)l .cvspass file:设置cvsnt管理员文件的路径(passwd文件)l e-mai

10、l notification:设置当发生错误时发送的邮箱地址,多个邮箱地址以空格分开l hudson url:就是hudson的默认地址3.2 系统管理管理插件系统管理à管理插件à可选插件à选中需要安装的插件点击右下角的安装即可4 Hudson项目及构建方法4.1 创建项目各名词解释l 构建一个自由风格的软件项目:通常使用这个选项,建立常规的任务的配置构建一个Maven 2/3 (Legacy)项目:用于配置maven项目l 构建一个多配置项目:l 监控一个外部的任务:l 复制现有任务:将现有的任务配置进行复制,然后在此基础上做修改4.2 自由风格项目4.2.1

11、创建项目 项目设置l Project name:项目名称l Description:项目说明 l Discard Old Builds:是控制着您想要在Hudson所在的磁盘把构建记录存储的有效期 (诸如控制台输出、编译产成品等等)。Hudson为此提供了两个标准:1。时间驱动。在Hudson中您可以判断如果达到一定时限来删除一条记录(例 如,七天前)。2。数量驱动。在Hudson中您可以确保它拥有N份构建。如果又有新的构建开始,最早的那份(记录)就将被删除。Hudson也可以让您 建立的个别构建定义为'永远保持这个记录',以便防止某些重要的构建被自动丢弃。)这里

12、输入的是5,也就是hudson确保5份构建。l This build is parameterized:设置编译时参数l Disable Build:选择将会禁用此构建任务l Restrict where this project can be run:指定任务在哪台机器上运行(例如:master,slave node等;)l Advanced Node and Label expressions:给任务添加标签,从而能限制该任务只在哪些node上运行,只有任务和node的标签相同时,才会在该node上运行,这通常用于任务运行环境有 特殊的要求时(例如:linux64 mem64G等等)4.2

13、.1.2 高级项目设置Advanced Project Options:l Use custom workspace:限制该任务在哪个路径下执行,最好给各个目录设定统一的工作目录(例如/home/work/CI/workspace),然后在工作目录下把不同的任务放在不同的子目录下(例如test-bs) 源代码管理Source Code Management:在默认情况下是这三个选项:Subversion,CVS,None如果您安装了一个与SCM相关的插件,并重新启动Hudson,那么在这个清单上也将出现一些新的选择。l Repository URL:为本任务需要构建的源代码分支;

14、可以监控多个svn路径、分支等l Check-out Strategy:Use update 选中的话。每次构建时。会更新下代码分支,再执行构建 触发构建的方式Build Triggers l Build after other projects are built : 其他的任务构建成功后,触发本任务的新构建;此选项支持一条装配(流水作业)线作业依赖: 一个作业依赖于另一个作业的输出的情况 就是可以支持连续编译多个任务,设置这个选项后,在其他任务编译之后,可以立即自动启动这个任务,例如,我们通常在项目中会有二方库的部署,我们设置,先部署二方库,然后在编译我们的应用,使得依赖于二

15、方库的应用能够正常编译成功。l Poll SCM:定期更新仓库代码,也是使用定时作业表达式;定时检查代码更改,在代码更改时触发构建五个*表示: 如果svn中有代码更新,则每分钟执行一次任务; 所以在代码更新到svn后,可以在一分钟后就可以看到测试结果l Build periodically:定时触发构建,可用于dailybuild, 此选项 (也是使用定时作业表达式)仅仅通知Hudson按指定的频率对项目进行构建,而不管SCM是否有变化。如果想在这个作业中运行一些测试用例的话,它就很有帮助。l Build when Maven SNAPSHOT dependencies have been u

16、pdated externally:l Build when Maven dependencies have been updated by Maven 3 integration:l Trigger builds remotely:远程命令来触发本次构建 构建命令Build 填写构建时需要执行的命令。执行时,其实路径是Use custom workspace时配置的路径。这里可以添加多个命令框,每个命令框中可以输入多个命令,顺序执行。 注意:如果任意一个命令的返回值不为0,则hudson就认为本次构建失败,并中断后面命令的执行。 构建后动作 l Archive t

17、he artifacts:设置每次构建后,archive的位置。设置好后,每个构建都能带有archive。详细的设置方式可以点右边的问号。注意:如果是想拿某个目录下的所有的东西,正则表达式是"dir/*"l Publish JUnit test result report:设置每次构建的报告位置。设置好后,每个构建都能看到报告。注意,这的报告只支持junit格式的报告,可以调用CI/bin /btest2junit工具将atpreport产生的atp格式的报告转成junit格式的报告。l Build other projects:在本次构建后,触发其他任务的执行。l E-m

18、ail Notification:可以设置成功/失败情况下,发给谁(提交人,关注人等等),更多配置请点击右边的“?”4.2.2 项目build方法-ant Hudson-Ant1、 如果不配置其他文件的情况,则默认执行build.xml文件2、 如有其他脚本需要build,则需配置路径比如:需执行build_test.xml文件 直接用ant命令build/home/work/CI/tools/ant1.8.2/bin/ant -file build_test.xml4.2.3 项目build方法-shell4.2.4 项目build方法-maven5 Hudson项目构建及报告5.1 项目构建1、开始构建点击立即构建2、构建开始执行build History 下面的#1有下滚动条,说明正在构建中,点击它会出现下图3、 构建结束4、对于构建过程可以查看构建细节1)点击某次构建,进入构建详细页2)点击命令行输出,查看构建细节(对于构建失败的情况,便于查看出现异常) 5.2 作业状况分析Hudson使用两个概念来介绍一个作业的总体状况:作业状态:图中分级符号概述了一个作业新近一次构建会产生的四种可能的状态:l Successful: 完成构建,且被认为是稳定的。l Unsta

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论