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="buildmaster@mycompany.com" mailhost="smtp.mycompany.com" mailport="25" includeDetails="TRUE"

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

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

<users>

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

<user name="BuildGuru" group="buildmaster" address="buildguru@mycompany.com"/>

<user name="JoeDeveloper" group="developers" address="joedeveloper@thoughtworks.com"/>

</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="aaa@163.com" mailhostPassword="*******" useSSL="FALSE">
        <from>aaa@163.com</from>
        <mailhost>smtp.163.com</mailhost>
        <users>
       
          <user name="Ailsa" group="tester" address="Ailsa@163.com"/>

<user name="朱朱" group="developer" address="zz@163.com" />

</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

CruiseControl.NET配置的更多相关文章

  1. CruiseControl 安装配置

    https://sourceforge.net/projects/ccnet/files/CruiseControl.NET%20Releases/ 一个完整的配置文件(VS2010的解决方案)其他版 ...

  2. CruiseControl.NET/CCNET配置(SVN+MSBuild+BAT+FTP)

    CCNET目前最新版本为1.8.5,官方很久没更新过了,如果投入生成环境使用,建议全部转到Jenkins上. 可以直接在这里下载:http://www.cnblogs.com/EasonJim/p/5 ...

  3. CruiseControl.NET 的安装与配置

    CC.NET 是 CruiseControl.NET 的简称,官方网站在这里. 官方的定义是自动连续集成服务, 使用Microsoft .NET Framework实现. 另外它还有Java的版本叫做 ...

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

    刚换了工作,有需要搭建一套持续集成的平台,做一下总结. 首先是我用到的工具: 上面缺少了Microsoft Fxcop,可以用来做代码校验,不过实际情况暂时还没有用到.主要的需求目前是,使用已发布的稳 ...

  5. CruiseControl.Net <buildpublisher>部署到远程机器报错的解决办法

    CruiseControl.Net ,使用<buildpublisher>将编译后的程序部署到远程机器时,使用以下配置 <buildpublisher> <sourceD ...

  6. Windows Server配置Jenkins,实现监测SVN提交自动构建.net4.5的项目

    1,持续集成 概念:http://baike.baidu.com/view/5253255.htm,对于大多数人而言,自动构建/自动测试/自动部署,已经很发挥它的价值了.选择上: 推荐jenkins, ...

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

    持续集成想必大家很多人都听说过,甚至都实践过,最近我又一次亲历了一次持续集成,现将我的经验分享给大家.关于持续集成的理论在本文概不涉及,本文的主要目的是实战CruiseControl.Net,用它来全 ...

  8. 【Hello CC.NET】巧用模板简化配置

    从 <[Hello CC.NET]CC.NET 实现自动化集成> 到 <[Hello CC.NET]自动化发布时 Web.config 文件维护> ,大神在评论里提到的方案还没 ...

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

    配置如下: 说明:此配置文件的功能是当有SVN修改时,会自动触发并编译发布,间隔为10秒. 由于配置文件上面有注释,如果提示节点配置错误,请删除这些注释. 官方详细节点配置说明:http://www. ...

随机推荐

  1. linux安装五笔拼音混输 的五笔输入法

    打开终端先卸载系统的iBus sudo apt-get remove ibus 添加源sudo add-apt-repository ppa:fcitx-team/nightlysudo apt-ge ...

  2. vue组件化编程应用2

    写几个小案例来理解vue的组件化编程思想,下面是一个demo. 效果图示: 需求: header部输入任务,进行添加,在list中显示; list中每个item项,鼠标移入时,背景变灰并显示delet ...

  3. Codeforces 1262D Optimal Subsequences(BIT+二分)

    首先比较容易想到肯定是前k大的元素,那么我们可以先对其进行sort,如果数值一样返回下标小的(见题意),接下里处理的时候我们发现需要将一个元素下标插入到有序序列并且需要访问第几个元素是什么,那么我们可 ...

  4. 数据库设计时,每个表要不要都设置自增主键ID!(转)

    逻辑数据库设计 - 需要ID(谈主键Id) 本文的目标就是要确认那些使用了主键,却混淆了主键的本质而造成的一种反模式. 一.确立主键规范 每个了解数据库设计的人都知道,主键对于一张表来说是一个很重要, ...

  5. 公用flex类

    开发过程中,很多布局,用antd的栅格还是不灵活,flex弹性布局会更好用 Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性. 注意 ...

  6. Docker数据目录相关操作

    数据目录挂载 我们可以在创建容器的时候,将宿主机的目录与容器内的目录进行映射,这样我们就可以通过修改宿主机某个目录的文件从而去影响容器.使用 -v 选项 docker run -id -v /宿主机绝 ...

  7. losetup - 设 定 与 控 制 环回设备

    总览 SYNOPSIS losetup [ -e encryption ] [ -o offset ] loop_device file losetup [ -d ] loop_device 描述 l ...

  8. Tomcat报java.io.IOException: Broken pipe错误

    Tomcat报java.io.IOException: Broken pipe错误,如下图: 解决方案:我的原因是因为网络策略导致出现该问题,即网络端口未启用或被限制.

  9. SQL SERVER 索引维护

    -- 全数据库索引重建 DECLARE @name varchar(100)DECLARE authors_cursor CURSOR FOR Select [name] from sysobject ...

  10. IntelliTrace调试

    当您进行调试时,IntelliTrace 将在后台收集有关托管应用程序的数据,其中包括来自许多框架组件(例如 ADO.NET.ASP.NET 和 System.XML)的信息.这些 IntelliTr ...