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,则需配置路径比如:

1 / 15
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功