zoukankan      html  css  js  c++  java
  • CruiseControl.NET 三言两语

    对于稍微大一点的项目,持续集成,每日发布将成为项目组的一项重要工作,在敏捷项目组中尤为突出。为了提高持续集成的自动化程度,产生了很多开源的工具,这里我们主要关注windows下,基于.net开发环境。工具有:

    1. CruiseControl.NET 持续集成工具,运行于服务器上,根据用户的配置,把很多零散的任务进行在一起,实现定时运行、固定时间运行等方式把用户配置起来的流程跑起来,比如从SVN上更新代码、使用MSBuild编译工程或解决方案、使用代码分析工具对代码规范性进行检查、运行测试用例、最后把上面所有步骤的结果使用邮件等方式发布给负责人。
    2. MSBuild 微软.Net Framwork环境中的build工具。
    3. FxCop 微软提供的针对C#等托管语言代码分析工具。不太适合cpp
    4. NUnit, 单元测试工具,从JUnit移植过来,针对很对语言都提供了比较统一的接口,学习曲线比较平坦。针对cpp有CppUnit.
    5. NAnt。.Net下的构建工具,目前只提供命令行模式,他的主要作用是通过配置,实现很多自动化功能。比如在build之前要进行其他清理工作,build之后要进行其他复制等其他工作,都可以固定的在配置文件中配置。他把更多小的任务集成了在一起。

    以上这些工具,都可以通过ccnet很好的组合在一起协同工作。下面简单介绍下ccnet的使用

    1. 做好准备,机器上需要安装IIS,相应的.net framwork
    2. 下载CruiseControl.NET,这个是服务器段软件,是必须要安装的。CruiseControl.NET-CCTray是客户端工具。
    3. 安装CruiseControl.NET之后,需要做的主要工作就是配置ccnet.exe目录下的ccnet.config文件,此文件中包含了所有要执行的配置,ccnet就是通过读取这个文件来提供服务。下面提供一个简单的配置

    代码
    <cruisecontrol>
    <project name="MapPrj">
    <!--工作目录,下载的源码将会被保存在这个目录下,如没有设置则会自被保存在安装目录下server子目录以project name为名称的目录下-->
    <workingDirectory>e:\ccnet</workingDirectory>
    <!--对这个项目的监控过程的日志记录目录-->
    <artifactDirectory>e:\ccnet</artifactDirectory>
    <!--使用什么样的方式标识每一个自动生成的版本,可以有多种不同的方式。Labeller Blocks -->
    <labeller type="dateLabeller" />

    <!--执行周期-->
    <triggers>
    <!--定时任务,可以设置在哪天的那个时间执行构建计划-->
    <!--scheduleTrigger time="14:00" buildCondition="ForceBuild"-->
    <!--以下配置节有指定,则会在指定的时间日期内执行,没有则每天执行-->
    <!--<weekDays>
    <weekDay>Monday</weekDay>
    </weekDays>
    -->
    <!--/scheduleTrigger-->

    <!--每隔多少时间执行一次-->
    <intervalTrigger seconds="60" buildCondition="ForceBuild"/>
    </triggers>

    <!--使用的源码控制器类型-->
    <sourcecontrol type="multi">
    <sourceControls>
    <svn>
    <trunkUrl>http://***/TRUNK/INCLUDE</trunkUrl>
    <workingDirectory>./inc</workingDirectory>
    <username>用户名</username>
    <password>密码</password>
    </svn>
    <svn>
    <trunkUrl>http://***/TRUNK/VS2005/win32consoletest</trunkUrl>
    <workingDirectory>./vs</workingDirectory>
    <username>用户名</</username>
    <password>nihao</password>
    </svn>
    </sourceControls>
    </sourcecontrol>


    <!--每次下载完代码后要执行的任务,可以有
    * Build Publisher
    * Email Publisher
    * Executable Task
    * File Merge Task
    * ForceBuildPublisher
    * Modification Writer Task
    * MsBuild Task
    * NAnt Task
    * Null Task
    * NUnit Task
    * Visual Studio Task
    * Xml Log Publisher
    -->

    <tasks>
    <!--msbuild 自动编译任务-->
    <msbuild>
    <!--msbuild的路径,一般在系统目录下-->
    <executable>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\MSBuild.exe</executable>
    <workingDirectory></workingDirectory>
    <!--解决方案文件,相对project 的workingDirectory,MSBuild会找到这个文件,并对它进行编译-->
    <projectFile>test.sln</projectFile>
    <!--编译参数-->
    <buildArgs></buildArgs>
    <!--编译的目录类型-->
    <targets></targets>
    <!--过期时间-->
    <timeout>60</timeout>
    </msbuild>
    </tasks>
    </project>
    </cruisecontrol>

    如果编写配置没有错误,直接运行CruiseControl.NET即可看到监视窗口,当配置中时间满足时,程序将更新代码、编译程序等一套流程。

    参考 

    http://www.cnblogs.com/hjf1223/archive/2006/04/13/374655.html

    http://www.evget.com/zh-CN/Info/catalog/10320.html

  • 相关阅读:
    在C#代码中应用Log4Net(二)典型的使用方式
    在C#代码中应用Log4Net(一)简单使用Log4Net
    Windows Azure Active Directory (2) Windows Azure AD基础
    Windows Azure Virtual Network (6) 设置Azure Virtual Machine固定公网IP (Virtual IP Address, VIP) (1)
    Windows Azure Active Directory (1) 前言
    Azure China (6) SAP 应用在华登陆 Windows Azure 公有云
    Microsoft Azure News(3) Azure新的基本实例上线 (Basic Virtual Machine)
    Microsoft Azure News(2) 在Microsoft Azure上运行SAP应用程序
    Microsoft Azure News(1) 新的数据中心Japan East, Japan West and Brazil South
    Windows Azure HandBook (2) Azure China提供的服务
  • 原文地址:https://www.cnblogs.com/gadfly/p/1900292.html
Copyright © 2011-2022 走看看