• 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

  • 相关阅读:
    关于视图的一些认识
    __autoload()尝试加载未定义的类
    php正则逆向引用与子模式分析
    常州day1p4
    Hello World
    Linux安装配置jdk
    使用http3访问服务
    后端访问sso后,如何返回前端vue页面(后端redirect跳转,vue代理,axios带参)
    linux常用命令
    使用nexus搭建npm私服
  • 原文地址:https://www.cnblogs.com/gadfly/p/1900292.html
Copyright © 2020-2023  润新知