CruiseControl.NET配置

CruiseControl.NET简介

CruiseControl.NET是.net平台下,一个开源的自动化持续集成工具。
它是一个程序套件,但其核心是一个叫做CruiseControl.NET Server的自动集成服务器. 
      
通过直接监视源代码管理仓库,CruiseControl.NET使集成过程得以自动化。开发员每提交一组新的更新,CruiseControl.NET
Server就会自动运行集成构造,以验证新的更新。当构造完成以后,Server将会通知开发员,提交的更改是否成功通过集成。

事实上,集成同签入(Check
in)代码一样容易。使用自动集成服务器不仅仅使集成变得容易,它还会保证一旦有更新,集成构造一定会发生。这将有效降低在开发员签入(Check
in)代码之后,忘记代码有效性验证的危险。

1.配置项目
<!--name:项目名称;queue:采用何种序列处理方式;queuePriority:序列的优先级--> 
<project
name="Project 1" queue="Q1" queuePriority="1">

<!--工作目录的配置,设定一个绝对路径作为集成的工作目录-->

<workingDirectory>yourWorkingDirectory</workingDirectory>

<!--集成结果保存路径,每个项目配置一个唯一路径-->

<artifactDirectory>yourArtifactDirectory</artifactDirectory>

<!--web界面集成报告的URL,这个URL一般用在邮件内容中-->

<webURL>http://localhost/ccnet</webURL>

<!--源代码迁入与启动集成的最少时间间隔-->

<modificationDelaySeconds>2</modificationDelaySeconds>

<!--触发模式,一般采用间隔触发器-->

<triggers>

<!--name:触发器名称;seconds:间隔时间;BuildCondition:构建条件,有两个选项——强制集成ForceBuild和文件变动时集成IfModificationExists;initialSeconds:server启动与第一次构建的时间间隔-->

<intervalTrigger name="continuous" seconds="30" buildCondition="ForceBuild"
initialSeconds="30"/>

</triggers>

</project>

2.配置源代码管理

<sourcecontrol
type="svn">

<!--源代码的svn路径-->

<project> XXXXX/code/branches/MEMS_AllSource</project>

<!--SVN用户名-->

<username>svnname </username>

<!--SVN密码-->

<password>svnpws</password>

<!--工作目录,可以使用相对目录,以上面的workingDirectory为准-->

<workingDirectory>D:\CCPro\mywork</workingDirectory>

</sourcecontrol>

3.配置编译

<msbuild>

<!--MSBuild的路径-->

<executable>C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe</executable>

<!--工作路径-->

<workingDirectory>C:\dev\ccnet</workingDirectory>

<!--解决方案或项目sln文件-->

<projectFile>CCNet.sln</projectFile>

<!--MSBuild的构建参数-->

<buildArgs>/noconsolelogger /p:Configuration=Debug
/v:diag</buildArgs>

<!--构建目标-->

<targets>Build</targets>

<!--超时时间-->

<timeout>900</timeout>

<!--日志文件处理模快-->

<logger>C:\Program
Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll</logger>

</msbuild>

4.配置邮件提醒

<!--from:邮件发件人;mailhost:邮件服务器地址;mailport:smtp端口;includeDetail:是否包含详细报告信息;mailhostUsername:smtp用户名;mailhostPassword:smtp密码;useSSL:是否使用ssl发送邮件-->

<email
from="[email protected]"
mailhost="smtp.mycompany.com" mailport="25" includeDetails="TRUE"

mailhostUsername="smtpuser"
mailhostPassword="smtppassword" useSSL="FALSE">

<!--定义一组接收邮件的用户-->

<users>

<!--name:用户名称,必须同源代码管理系统的帐号一致;group:所属分组;address:邮件地址;-->

<user
name="BuildGuru" group="buildmaster" address="[email protected]"/>

<user
name="JoeDeveloper" group="developers" address="[email protected]"/>

</users>

<!--用户组-->

<groups>

<!--name:组名称;nitification:通知策略——Always[每次构建均发送通知]、Changed[构建结果发生改变时发送通知,例如从success变为fail]、Failed[当构建失败时发送通知]、Success[当构建成功时发送通知]、Fixed[当构建从失败到通知时发送通知]、Exception[构建发生异常时发送通知]-->

<group
name="developers" notification="change"/>

<group
name="buildmaster" notification="always"/>

</groups>

<!--设置提交者通知测略,当构建完成后,符合符合设置的条件将邮件通知所有此次源代码改变的参与者-->

<modifierNotificationTypes>

<NotificationType>Failed</NotificationType>

<NotificationType>Fixed</NotificationType>

</modifierNotificationTypes>

</email>

部署实例

<?xml
version="1.0" encoding="utf-8"?>
<cruisecontrol
xmlns:cb="urn:ccnet.config.builder">
 <!--
This is your CruiseControl.NET Server Configuration file. Add your projects
below! -->

<project name="myproject" >
   
<workingDirectory>D:\ccnet</workingDirectory>
   
<artifactDirectory>D:\ccnet</artifactDirectory>
   
<labeller type="dateLabeller" />
   
   
<sourcecontrol type="svn">
     
<autoGetSource>true</autoGetSource>
     
     
<!--源码库中的项目名称,SVN中源代码的路径-->
     
     
<trunkUrl>https://XXXXXXXXXX/code/branches/MEMS_AllSource</trunkUrl>

<!--SVN命令客户端安装文件安装的所有目录-->

<executable>C:\Program Files\CollabNet\Subversion
Client\svn.exe</executable>

<!--svn用户名-->

<username>username</username>

<!--svn密码-->

<password>userpws</password>

<!--工作目录,可以使用相对目录,以上面的workingDirectory为准-->

<workingDirectory>D:\CCPro\myproject</workingDirectory>

</sourcecontrol>

<triggers>

<!--定时任务,可以设置在哪天的那个时间执行构建计划-->

<scheduleTrigger time="21:00" buildCondition="ForceBuild">

<!--以下配置节有指定,则会在指定的时间日期内执行,没有则每天执行-->

<!--<weekDays>

<weekDay>Monday</weekDay>

</weekDays>-->

</scheduleTrigger>

<!--每隔多少时间执行一次-->
   
<!--每天21:30-23:59以及00:00-08:20不执行-->
   
<filterTrigger startTime="21:30" endTime="08:20">
     
<!--每隔多少时间执行一次-->
     
<trigger type = "intervalTrigger" name="continuous" seconds="30"
buildCondition="IfModificationExists" initialSeconds="60" />
   
</filterTrigger>

</triggers>
   
   
 
<tasks>

<!--msbuild 自动编译任务-->

<msbuild>

<!--msbuild的路径,一般在系统目录下-->

<executable>C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe</executable>

<workingDirectory>D:\CCPro\myproject</workingDirectory>

<!--解决方案文件,相对project 的workingDirectory,MSBuild会找到这个文件,并对它进行编译-->

<projectFile>D:\CCPro\my2641\MEMS_AllSource.sln</projectFile>

<!--编译参数-->

<!--<buildArgs></buildArgs>-->

<!--编译的目录类型-->

<!--<targets></targets>-->

<!--过期时间-->

<timeout>1800</timeout>

<!--记录编译的详细日志,需要单独下载这个程序集,放在工作目录(workingDirectory)下,下载路径http://ccnetlive.thoughtworks.com/MSBuildXmlLogger%2DBuilds/-->

<logger>C:\Program
Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MSBuild.dll</logger>
     
<!--<logger>ThoughtWorks.CruiseControl.MsBuild.XmlLogger,ThoughtWorks.CruiseControl.MsBuild.dll</logger>-->

</msbuild>

</tasks>

<publishers>
     
<xmllogger logDir="D:\ccnet\buildlogs" />
     
<email mailport="25" includeDetails="TRUE" mailhostUsername="[email protected]" mailhostPassword="*******"
useSSL="FALSE">
       
<from>[email protected]</from>
       
<mailhost>smtp.163.com</mailhost>
       
<users>
       
         
<user name="Ailsa" group="tester" address="[email protected]"/>

<user name="朱朱" group="developer" address="[email protected]" />

</users>
       
<groups>
         
<group name="tester">
           
<notifications>
             
<notificationType>Failed</notificationType>
             
<notificationType>Fixed</notificationType>
           
</notifications>

</group>
         
<group name="developer">
           
<notifications>
             
<notificationType>Failed</notificationType>
             
<notificationType>Fixed</notificationType>
           
</notifications>
         
</group>

<group name="buildmaster">
           
<notifications>
             
<notificationType>Exception</notificationType>
           
</notifications>
         
</group>
       
</groups>
       
<!--
       
<converters>
         
<regexConverter find="$" replace="@TheCompany.com" />
       
</converters>-->
       
<modifierNotificationTypes>
         
<NotificationType>Failed</NotificationType>
         
<NotificationType>Fixed</NotificationType>
       
</modifierNotificationTypes>
       
<subjectSettings>
         
<subject buildResult="StillBroken" value="Build is still broken for
${CCNetProject},the fix failed." />
         
<subject buildResult="Broken" value="${CCNetProject} broke at
${CCNetBuildDate} ${CCNetBuildTime } , last checkin(s) by
${CCNetFailureUsers}" />
         
<subject buildResult="Exception" value="Serious problem for
${CCNetProject}, it is now in Exception! Check status of network /
sourcecontrol" />
         
<subject buildResult="Fixed" value="${CCNetProject} is fixed now! last
checkin(s) by ${CCNetFailureUsers}.Well done!" />
       
</subjectSettings>
       
<xslFiles>
         
<file>xsl\header.xsl</file>
         
<file>xsl\compile.xsl</file>
         
<file>xsl\unittests.xsl</file>
         
<file>xsl\modifications.xsl</file>
         
<xslFile>xsl\compile-msbuild.xsl</xslFile>
       
</xslFiles>
       
<!--
       
<attachments>
         
<file>C:\Data\AFile.txt</file>
         
<file>Relative.txt</file>
       
</attachments>
       
-->
     
</email>

本文转自:http://www.51testing.com/html/20/280220-824398.html

时间: 2024-08-19 06:39:58

CruiseControl.NET配置的相关文章

cruisecontrol配置样例

<?xml version="1.0"?> <cruisecontrol> <project name="SampleCCProject"> <bootstrappers> <currentbuildstatusbootstrapper file="../logs/currentbuild.txt" /> <svnbootstrapper file="build-cc.x

转载maven安装,配置,入门

转载:http://www.cnblogs.com/dcba1112/archive/2011/05/01/2033805.html 本书代码下载 大家可以从我的网站下载本书的代码:http://www.juvenxu.com/mvn-in-action/,也可以通过我的网站与我取得联系,欢迎大家与我交流任何关于本书的问题和关于Maven的问题. 咖啡与工具 本书相当一部分的内容是在苏州十全街边的Solo咖啡馆完成的,老板Yin亲手烘焙咖啡豆.并能做出据说是苏州最好的咖啡,这小桥流水畔的温馨小

CruiseControl.NET配置文件(生产环境版本,与SVN结合自动部署)

配置如下: 说明:此配置文件的功能是当有SVN修改时,会自动触发并编译发布,间隔为10秒. <cruisecontrol xmlns:cb="urn:ccnet.config.builder"> <!--项目说明,节点可多个--> <project name="[项目名]" description="[项目详情]" queue="Q1"> <!--编译日志存放--> <ar

CruiseControl.NET开篇

在这里说明一下,我终于踏上了CruiseControl.NET这条不归路了,为什么我会觉得是一条不归路,原因很简单,就是这东西在现在这个阶段已经很久没有在园子里有活跃度了,基本上到了已经可以到了让大家遗忘的程度,而且这东西本身配置上是个头痛的问题,没有可视化配置界面!(这个是个重点),如果论现在的自动化构建工具,jenkins这个现在确实很火,不管.net/java/iOS/android这些都能自动化构建出来,非常的强大,有空的时候,建议大家还是转这个吧. 至于我为什么要选择这个工具了,我想大

CCNET配置文件配置工具

当我们在使用CruiseControl.NET进行配置的时候,你会发现配置文件是个非常头痛的事,无从下手,下面我在google找了一个09年的工具,主要是针对CruiseControl.NET进行配置的,虽然很久没有更新了,但是还是有很多功能还可以配置的. 下载地址如下: https://ccnetconfig.codeplex.com/ 如果大家觉得还不错,可以直接直接下载源码进行修改,我使用的时候还是觉得非常方便的. 界面如下:

持续集成:CruiseControl.NET + VisualSVN.Server

刚换了工作,有需要搭建一套持续集成的平台,做一下总结. 首先是我用到的工具: 上面缺少了Microsoft Fxcop,可以用来做代码校验,不过实际情况暂时还没有用到.主要的需求目前是,使用已发布的稳定版本代码作为新发布版本代码的基础,避免有未完成的代码存在于发布版本中,同时自动化集成发布后,上传该新发布版本代码到tags中.elevate一般情况下是不需要的,不过VisualSVN无法使用命令行登陆,可以使用它来提升执行权限,不过最终我使用了另外一个办法,这个方法需要购买VisualSVN S

搭建你的持续集成server - CruiseControl step by step(1)

CruiseControl是CIserver的老者,诞生已是多年,在很多方面,CruiseControlserver已经成为持续集成实践的同义词.而如今,CruiseControl已发展成为一个家族式系统,包含CruiseControl.java.CruiseControl.net.CruiseControl.ruby等适应不同语言环境的实现,其强大的插件和扩展能力也是诸多同类系统无法比你的.而在这里,我仅仅介绍该家族的本家CruiseControl.java,即CruiseControl.Cr

使用CruiseControl.Net全面实现持续集成

持续集成想必大家很多人都听说过,甚至都实践过,最近我又一次亲历了一次持续集成,现将我的经验分享给大家.关于持续集成的理论在本文概不涉及,本文的主要目的是实战CruiseControl.Net,用它来全面实现持续集成. 在配置ccnet.config时会用到一些小工具,一并附上:小工具下载 首先,我们来看看用CC.Net能为我们做哪些事情: 自动获取源代码 自动Build 自动执行UnitTest,并生成单元测试报告 自动部署 触发自动化(回归)测试 邮件提醒 使用CCTray进行监控 应用plu

CruiseControl.Net学习笔记

一.下载 官网 二.安装 运行安装程序,按照提示"下一步”,直到完成即可. 安装完毕之后, 生成一个windows服务,CruiseControl.NET Server : 生成一个webdashboard网站(可自行在IIS中配置). 三.启动 在服务管理控制台,启动服务CruiseControl.NET Server: 在IIS中配置启动webdashboard站点. 四.配置 在server目录中的ccnet.config文件中进行项目配置. 五.配置节点详解 六.参考资料 使用Cruis