您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > Hudson持续集成服务器帮助
Hudson持续集成服务器帮助1Hudson介绍1.1Hudson简介Hudson是一种革命性的开放源码CI(持续集成)服务器,它从以前的CI服务器吸取了许多经验教训。Hudson最吸引人的特性之一是它很容易配置:很难找到更容易设置的CI服务器,也很难找到开箱即用特性如此丰富的CI服务器。Hudson容易使用的第二个原因是它具有强大的插件框架,所以很容易添加特性。例如,一个Hudson插件可以随时间的推移跟踪FindBugs和代码覆盖。它还可以报告测试结果的趋势(来自JUnit或TestNG)以及构建结果和对应的执行时间。hudson主要用于:持续、自动地构建/测试软件项目.监控Hudson需要运行java5或以上版本,容器Servlet2.4或以上的版本。一个典型的持续集成周期包括以下几个步骤:1.持续集成服务器不断从版本控制服务器上检查代码状态,看代码是否有更新。2.如果发现代码有最新的提交,那么就从版本控制服务器下载最新的代码。3.等代码完全更新以后,调用自动化编译脚本,进行代码编译。4.运行所有的自动化测试。5.进行代码分析。6.产生可执行的软件,能够提供给测试人员进行测试。1.2Hudson名词解释持续集成(CI):”ContinuousIntegrationisasoftwaredevelopmentpracticewheremembersofateamintegratetheirworkfrequently.Eachintegrationisverifiedbyanautomatedbuild(includingtest)todetectintegrationerrorsasquicklyaspossible.Manyteamsfindthatthisapproachleadstosignificantlyreducedintegrationproblemsandallowsateamtodevelopcohesivesoftwaremorerapidly.”---引用任务(Job):在hudson上任务是一个静态的概念,任务有配置信息、执行步骤、任务通知邮件、任务当前/历史状态、趋势等信息。任务之间,可以定义串行、并行的关系。构建(Build):构建对应于任务的一次执行,构建拥有log、归档信息(archive)、测试报告、持续时间、执行结果、状态等信息。快速构建(Quick_build):快速构建对应于一个需要尽快反馈结果的任务,通常反馈给RD,报告本次构建是否成功,以便及时发现问题。Quickbuild通常只运行编译、单测、以及部分QA的用例(重要且运行时间短)。Quickbuild成功后会触发slowbuild。快速构建一般时间在10分钟以内。本地构建(Local_buidl):RD在提交代码前,需在本地完成本次构建,本地构建一般包括编译、单测等。慢速构建(Slow_build):对应于一个需要全面覆盖保证质量的任务,通常反馈给QA/RD,会运行QA全部的用例、覆盖率统计、以及其他的一些验证。模块任务:模块任务是对于某个模块应用持续集成的一个流程。根据模块的复杂性、任务调度等需要,模块任务可以对应于一个或多个Job。多个Job可以配置成串行、并行、串行+并行等方式。节点(node):对应于hudson上配置的一台机器。多个节点构成机器Grid。可以让任务在Grid内实时调度,也可以让任务限制在某个或几个node上运行。1.3hudson工作流程Svn源码库对比版本下载有更新的文件目标机器Hudsonmaster/slavenode编译执行测试脚本通知2Hudson安装2.1Hudson安装方法1(通用)下载最新版本,(它打包为一个WAR文件)。hudson官方网址:将hudson.war包文件直接部署到servlet容器中,然后启动容器,在浏览器中输入:就会出现hudson的主界面。2.2Hudson安装方法2(baidu脚本)下载到测试机,执行该脚本并指定本地的安装目录即可。Hudson_install.sh脚本会安装使用8235端口作为hudsonweb服务的端口。安装成功后,即可通过http://测试机:8235/hudson访问hudson。在测试机指定的安装目录下,会生成一个CI目录作为CI平台的根目录。CI下的目录结构如下:2.3Hudsonslavenode机器安装:当任务较多需要一台服务器资源不够时,可以添加新的机器作为slave,与hudson服务器(master)一起构成机器Grid。注:如果node的机器上没有安装jdk,则需要保证在RemoteFSroot下有jdk目录,把JDK6.0以上的版本放到该目录下。一定要保证多个node的环境一致,以便任务分发到各个node上执行均能正常。2.4Hudson重启Hudson项目:bb-game-test09.vm.baidu.com:/home/work/hudson//home/work/hudson/CI/tomcat3Hudson配置3.1系统管理——系统设置主目录,这里包含hudson要执行的任务所在工作区与相关配置信息。系统消息:填写一些说明信息执行者数量:能同时执行的任务数量,生成前等待时间:一个计划中的构建在开始之前需要等待选项中设置的秒数SCM签出重试次数:如果从版本库签出代码失败,Hudson会按照这个指定的次数进行重试之后再放弃.启用安全:设置hudson的登录规则,默认登录为匿名登录,Globalproperties:设置一些全局变量,类似于windows的环境变量JDKinstallations:设置JDK的安装路径Shellexecutable:设置windowshell命令Antinstallation:设置ant的安装路径maveinstallation设置mave的安装路径cvsexecutable:设置cvsnt执行进程的路径(cvs.exe).cvspassfile:设置cvsnt管理员文件的路径(passwd文件)e-mailnotification:设置当发生错误时发送的邮箱地址,多个邮箱地址以空格分开hudsonurl:就是hudson的默认地址3.2系统管理——管理插件系统管理管理插件可选插件选中需要安装的插件点击右下角的安装即可4Hudson项目及构建方法4.1创建项目各名词解释构建一个自由风格的软件项目:通常使用这个选项,建立常规的任务的配置构建一个Maven2/3(Legacy)项目:用于配置maven项目构建一个多配置项目:监控一个外部的任务:复制现有任务:将现有的任务配置进行复制,然后在此基础上做修改4.2自由风格项目4.2.1创建项目4.2.1.1项目设置Projectname:项目名称Description:项目说明DiscardOldBuilds:是控制着您想要在Hudson所在的磁盘把构建记录存储的有效期(诸如控制台输出、编译产成品等等)。Hudson为此提供了两个标准:1。时间驱动。在Hudson中您可以判断如果达到一定时限来删除一条记录(例如,七天前)。2。数量驱动。在Hudson中您可以确保它拥有N份构建。如果又有新的构建开始,最早的那份(记录)就将被删除。Hudson也可以让您建立的个别构建定义为'永远保持这个记录',以便防止某些重要的构建被自动丢弃。)这里输入的是5,也就是hudson确保5份构建。Thisbuildisparameterized:设置编译时参数DisableBuild:选择将会禁用此构建任务Restrictwherethisprojectcanberun:指定任务在哪台机器上运行(例如:master,slavenode等;)AdvancedNodeandLabelexpressions:给任务添加标签,从而能限制该任务只在哪些node上运行,只有任务和node的标签相同时,才会在该node上运行,这通常用于任务运行环境有特殊的要求时(例如:linux64mem64G等等)4.2.1.2高级项目设置AdvancedProjectOptions:Usecustomworkspace:限制该任务在哪个路径下执行,最好给各个目录设定统一的工作目录(例如/home/work/CI/workspace),然后在工作目录下把不同的任务放在不同的子目录下(例如test-bs)4.2.1.3源代码管理SourceCodeManagement:在默认情况下是这三个选项:Subversion,CVS,None如果您安装了一个与SCM相关的插件,并重新启动Hudson,那么在这个清单上也将出现一些新的选择。RepositoryURL:为本任务需要构建的源代码分支;可以监控多个svn路径、分支等Check-outStrategy:Useupdate选中的话。每次构建时。会更新下代码分支,再执行构建4.2.1.4触发构建的方式BuildTriggersBuildafterotherprojectsarebuilt:其他的任务构建成功后,触发本任务的新构建;此选项支持一条装配(流水作业)线——作业依赖:一个作业依赖于另一个作业的输出的情况——就是可以支持连续编译多个任务,设置这个选项后,在其他任务编译之后,可以立即自动启动这个任务,例如,我们通常在项目中会有二方库的部署,我们设置,先部署二方库,然后在编译我们的应用,使得依赖于二方库的应用能够正常编译成功。PollSCM:定期更新仓库代码,也是使用定时作业表达式;定时检查代码更改,在代码更改时触发构建五个*表示:如果svn中有代码更新,则每分钟执行一次任务;所以在代码更新到svn后,可以在一分钟后就可以看到测试结果Buildperiodically:定时触发构建,可用于dailybuild,此选项(也是使用定时作业表达式)仅仅通知Hudson按指定的频率对项目进行构建,而不管SCM是否有变化。如果想在这个作业中运行一些测试用例的话,它就很有帮助。BuildwhenMavenSNAPSHOTdependencieshavebeenupdatedexternally:BuildwhenMavendependencieshavebeenupdatedbyMaven3integration:Triggerbuildsremotely:远程命令来触发本次构建4.2.1.5构建命令Build填写构建时需要执行的命令。执行时,其实路径是Usecustomworkspace时配置的路径。这里可以添加多个命令框,每个命令框中可以输入多个命令,顺序执行。注意:如果任意一个命令的返回值不为0,则hudson就认为本次构建失败,并中断后面命令的执行。4.2.1.6构建后动作Archivetheartifacts:设置每次构建后,archive的位置。设置好后,每个构建都能带有archive。详细的设置方式可以点右边的问号。注意:如果是想拿某个目录下的所有的东西,正则表达式是dir/**PublishJUnittestresultreport:设置每次构建的报告位置。设置好后,每个构建都能看到报告。注意,这的报告只支持junit格式的报告,可以调用CI/bin/btest2junit工具将atpreport产生的atp格式的报告转成junit格式的报告。Buildotherprojects:在本次构建后,触发其他任务的执行。E-mailNotification:可以设置成功/失败情况下,发给谁(提交人,关注人等等),更多配置请点击右边的“?”4.2.2项目build方法-ant4.2.2.1Hudson-Ant1、如果不配置其他文件的情况,则默认执行build.xml文件2、如有其他脚本需要build,则需配置路径比如:
本文标题:Hudson持续集成服务器帮助
链接地址:https://www.777doc.com/doc-3445682 .html