hudson+ant+svn持续集成环境搭建

CI 持续集成环境搭建:

说明:主要工具,HudsonAntSVN,Tomcat

 

这里需要强调一点,hudson在使用ant脚本进行项目build的时候,出现无法正常加载变量的问题,将ant加入环境变量,ant –version 正常显示,但是hudson就是无法build,而换成Tomcat就没有任何问题,这个问题有点奇怪,我一直很信任resin的,结果有这个问题,有点失望~

 

、准备工作

下载 hudson.war  本文结束的地方提供下载

Resin 服务器 resin-3.1.10.zip  已换成apache-tomcat-6.0.29

 

、将apache-tomcat-6.0.29 解压

hudson.war放到 apache-tomcat-6.0.29下的webapp

resin的默认访问端口改成网站访问默认端口80,个人习惯,非必须

启动tomcat

访问:http://localhost/hudson/

出现 hudson的首页,表明hudson 发布成功了:

 

 

、当hudson搭建好了以后,就可以开始进行持续集成环境的搭建了

打开hudson首页,进入系统管理 》系统设置 ,这个时侯你会看到

 

点击右侧的帮助可以按照提示修改主目录的路径,这里我按照第一种方式进行修改,在环境变量中配置 HUDSON_HOME=E:\Servers\CI\hudson

 


重启tomcat

,刷新页面,则主目录修改为你指定的目录。

,刷新页面,则主目录修改为你指定的目录。

 

 

 

设置JDK:

Hudson 目录改完成以后,开始对其进行系统配置,这里我需要将antSVNJDK等在hudson中进行配置。

系统管理 --à 系统设置

配置JDK ,我没有选择自动安装,自己配置一个jdk,选择自动安装的同学可另外试试:

 

 

 

 

另外jdk还是可以配置多个的,这里我只使用了一个。

 

 

设置配置邮件提醒:

 

url也可以写成localhost,就是有告警,看着别扭,我就用IP

 

 

配置完成邮件信息后,点击红色按钮,即可接收测试邮件,这里我用gmail邮箱填写的,不过发送没成功。用公司邮件来填写,发送成功了,回家可以再试试别的邮箱。

也开始点击 Advanced ,对邮件进行安全设置。这里略过 

暂时先配置这些,具体和项目相关的,在具体的任务中进行配置。 

点击保存。

 

、创建任务:

新建任务,创建项目

有几种可以创建的项目,我使用的是第一种创建方式。

如果你的项目是maven的项目,可以使用 Build a maven2 project

其余的没做研究呢。

 

创建完成后,可以针对这个项目进行配置,我这里持续集成的源码来自SVN ,所以需要将SVNURL配置上。

针对项目设置SVN:

 

 

创建源码触发器:
选中 Poll SCM  ,在出现的Schedule 里面设置获取源码的时间,格式点击右边的帮助可以得到说明:

MINUTE

Minutes within the hour (0-59)

HOUR

The hour of the day (0-23)

DOM

The day of the month (1-31)

MONTH

The month (1-12)

DOW

The day of the week (0-7) where 0 and 7 are Sunday.

 

例如设置(*/2 * * * *),每隔两分钟进行一次获取代码,进行检查,当发现有新代码提交后,则进行buildbuild成功则发布最新版本包。

 

 

 

设置   Archive the artifacts

 Files to archive       cmp/target/report/**/*,cmp/target/deploy/*.zip

 

将发布的版本设置打包路径,基础目录是从项目的workspace开始的,也就是说当前设置的目录是workspace/cmp/target 下的目录
如果此目录设置错误,hudson会给出提示。

设置完成这个以后,在你创建的任务中,点击立即生成,则开始新版本的build。当你build成功的时候,点击该版本可以看到   生成Artifacts  

点击进入,可以下载你打包的内容,具体的打包设置,根据你的ant脚本来确定。

到这个阶段,hudson就已经搭建完成了。

 

 

 

 =====================================================================

此部分内容摘自http://jdonee.iteye.com/blog/315440。做个收藏~

  • Project name :我已经把这个项目命名为HeliosJMXTrunk ,但你也可以在这里修改它。
  • Description : 这是一个自由项,主要用来说明你关于这次构建工作的描述。可不填。(帮助:这说明放在项目的首页,以便访问者可以知道这个工作的内容。您也可以在这里使用任何HTML标记。)
  • Discard old builds : Hudson默认将保留过去的构建,除非你事先选中此框。(帮助:这里控制着您想要在Hudson所在的磁盘把构建记录存储的有效期(诸如控制台输出、编译产成品等等)。Hudson为此提供了两个标准:1。时间驱动。在Hudson中您可以判断如果达到一定时限来删除一条记录(例如,七天前)。2。数量驱动。在Hudson中您可以确保它拥有N份构建。如果又有新的构建开始,最早的那份(记录)就将被删除。Hudson也可以让您建立的个别构建定义为'永远保持这个记录',以便防止某些重要的构建被自动丢弃。)
  • This build is parameterized : 如果选择此选项,Hudson将允许您提供一套任意的键值对参数,它们会被传递到构建过程里。配置的参数往往是构建运行环境中的一些环境变量。(帮助:当您使用了Hudson的各种自动化,有时要求在构建过程中提供一组用户的输入,使用“parameterize”就能够更方便构建。例如,您可能会设立一个按需测试,在那里用户可以提交一个二进制文件的压缩文件来进行测试。
    本节参数可以完全按照您构建的需要配置。参数是以名字区分的,所以您可以有多个参数,只要它们名称不同。
    关于此功能的更多资料请查看维基专题讨论 。)
  • Enable project-based security : Hudson支持全面的安全方案,可以强制用户在通过身份验证后,再访问Hudson网页;它也可以通过控制用户的权限来管理用户的工作。在这个Hudson例子中我没有配置安全
  • Disable build : 如果这里被勾选,这项工作将不会执行构建,直到选项禁用为止。(帮助:有时候,你会想暂停某个构建中的项目。例如,也许您正准备一次大的迁移,而且你知道新版本会失败。或者您想每一个小时构建一次,但您却发现CVS服务器将在未来24小时内down机。当这个选项被设置后,关于这个项目就不会再有新的构建。这样一来,您就可以在不想改变外部依赖或者提交错误通知的情况下禁用构建过程。)
  • Advanced options : 我没有使用这些选项,但是当此复选框被选中时,选项中就会暴露下面的接口:
    • Quiet period : 在这里您可以配置一个静态监控,当构建准备按某个计划运行时,实际上它就已经在执行了。
    • Use custom workspace : 默认情况下,Hudson将在${jboss-home}/.hudson/jobs/[项目名称](注:Linux环境 )下创建一个工作区 。此选项将允许您使用指定的地址替代(它)。
  • Source code management : 在默认情况下是这三个选项:
    • Subversion
    • CVS
    • None
        这个None会误解我先前的主张 :一个先决条件是要有一个源代码仓库。但我坚持认为,在大多数情况下,为Hudson选择某个仓库是绝对必要的。本文稍后,我将讨论如何安装Hudson插件。如果您安装了一个与SCM相关的插件,并重新启动Hudson,那么在这个清单上也将出现一些新的选择。本文,我使用 Subversion 。当您选择Subversion后,将展开一个配置表单。我会在下面的某一部分中单独描述这个配置(见“ Subversion的工作配置” ) 。
  • Build after other projects are built : 此选项支持一条装配(流水作业)线——作业依赖: 一个作业依赖于另一个作业的输出的情况 —— 或者如以下情形:你只是想简单的把一些有关的工程构建编入一个组以便一起构建。当您一选择它,你将得到一个字段,输入其他工程的名字[多个项目名间用逗号分隔]后,这个构建应该就可以运行。
  • Poll SCM : 这是CI 系统中常见的选项。当您选择此选项,您可以指定一个定时作业表达式来定义Hudson每隔多久检查一下您源代码仓库的变化。如果发现变化,就执行一次构建。例如,表达式中填写0,15,30,45 * * * *将使Hudson每隔15分钟就检查一次您源码仓库的变化。更多信息请查阅Quartz CronTrigger中关于这个定时作业语法的详细描述。
  • Build periodically : 此选项 (也是使用定时作业表达式)仅仅通知Hudson按指定的频率对项目进行构建,而不管SCM是否有变化。我这个作业就属于目标测试环境是按某种方式定期修订的而SCM却是静态的情况。如果您想在这个作业中运行一些测试用例的话,它可能就很有帮助。

  • Add build step : 按一下这个按钮,添加了一项指令以执行构建脚本。您的指令可以是下列之一:

    • 执行 Shell
    • 执行 Windows 批处理
    • 使用Ant(这是我将要使用的选项,在下面我会做详细的说明)
    • 使用Maven
  • Archive the artifacts : 当您选择此选项,就可以指定文件和目录的掩码(Ant风格的掩码,可以指定包含与排除),当与掩码相匹配的构件在构建时将被添加到Hudson的构件仓库,它们会用作业(名)和构建序号来标识。所有以前构建过的构件可以选择性地丢弃,以节省您Hudson服务器上的磁盘空间。
  • Record fingerprints of files to track usage : 当您选择此选项,它使用类似Ant方式的掩码,恁可以指示Hudson去生成构件的指纹码,确保您能够更容易地找到它们的位置,另外判断系统中的这些构件是否还在使用。
  • Publish javadoc : 如果您的构建脚本能生成JavaDoc,此选项将指示Hudson发布这些内容,而且立即把它公布在当前工作的主页上。每一个成功构建的文档内容都可以保留,但在默认情况下只保留最新的。
  • Publish JUnit test result report : 如果您的构建脚本执行了JUnit测试,此选项将指示Hudson处理XML测试文档并为每次连续构建产生一份可持续的报告,依据正在进行的测试汇总处理结果。其结果是当前工作主页的一份报告,作业中的单元测试会随着时间的推移按由老至新进行陈列。
  • Aggregate downstream test results : 在某些情况下,作业中一组单元测试花费的时间大大长于实际构建它所花的时间。在这些情况下,你可以选择把构建和测试分为不同的作业,以便完成构建能相对迅速,一旦与这相关的一个或多个测试作业就执行完毕,构建也就成功完成了。 当您选择这个选项, Hudson就会把构建后作业的测试结果进行统计,并且能追溯到它们的明细。用以做为本次构建成功或失败的主要依据。
  • Build other projects : 较之前面的选项,这个选项主要用来实现一个合乎逻辑的构建和测试过程,它会被分为两个或两个以上的物理工作,并且会按顺序执行。当此项被选择后,您将得到一个字段,可以在其中输入您想在当前作业中后执行的其它作业名[多项作业可用逗号分隔]。即使目前的作业得出结论说构建可能不稳定,您也可以选择这样做。(关于“作业的稳定性”请查阅“作业状态”章节以获取更多信息)
  • E-mail notification : 当您选择此选项,您可以输入一个或多个电子邮件地址[多个可用空格分隔],当Hudson完成了执行作业后,将会给它们发送通知。事件触发时将产生一份Email,包括构建失败、构建不稳定等。这儿有一个额外的选项,当由于用户的错误提交造成Hudson决定废弃此次构建,将会发送一份专门的邮件给这位SCM提交者,以便让他检查源代码。
  •  

     

    猜你喜欢

    转载自cxr1217.iteye.com/blog/730085