CruiseControl.NET-1.8.4.0-Setup.exe              是服务器,安装时可以选择生成windows service以便开启,建议测试时不用windows service,直接用CruiseControl.NET 的运行文件,这样配置有问题时可以直接在上面看的到错误原因                    
CruiseControl.NET-CCTray-1.8.2.0-Setup.exe  是客户端,在配置好了CruiseControl.NET\server\ccnet.config以后,可以setting中增加需要管理的project
VisualSVN-Server-2.7.2.msi            ccnet.config中的会用到,提取svn
NAnt                                                            可以用来build project,拷贝文件等等...,

ccnet.config

 <cruisecontrol xmlns:cb="urn:ccnet.config.builder">
<!-- This is your CruiseControl.NET Server Configuration file.
Add your projects below! --> <!--可以有多个,但是name需要唯一-->
<project name="WorkDemo"> <!--集成报告的URL-->
<webURL>http://127.0.0.1/ccnet</webURL> <!--集成的日志,对这个项目的监控过程的日志记录目录, 需要确保文件夹路径存在-->
<artifactDirectory>C:\CCNet\WorkDemo\Log</artifactDirectory> <!--源码修改后延迟多少秒执行集成-->
<modificationDelaySeconds>10</modificationDelaySeconds> <!--每次编译标记-->
<!--Date Labeller 生成如下格式yyyy.mm.dd.build-->
<labeller type="dateLabeller" />
<!--Default Labeller 在指定的前缀后顺序加一,incrementOnFailure设为true指只有成功时才加一-->
<!--<labeller type="defaultlabeller">
<prefix>Foo-1-</prefix>
<incrementOnFailure>true</incrementOnFailure>
</labeller>-->
<!--按迭代命名 duration几周一次迭代,releaseStartDate迭代开始时间-->
<!--<labeller type="iterationlabeller">
<prefix>1.2</prefix>
<duration>1</duration>
<releaseStartDate>2005/6/24</releaseStartDate>
<separator>_</separator>
</labeller>-->
<!--Last Change Labeller 一些有changenumber源码管理器用的-->
<!--<labeller type="lastChangeLabeller">
<prefix>Foo-1-</prefix>
</labeller>--> <!--引起集成编译的触发器-->
<triggers>
<!--name: trigger的名字,可以随便起,
seconds: 两次集成的时间间隔
buildCondition: IfModificationExists,只有源码有修改才运行 —— 好像没填这个就是默认
ForceBuild,不管有无修改都运行-->
<intervalTrigger name="intervalTrigger1" initialSeconds="0" seconds="60" buildCondition="IfModificationExists"/> <!--time:什么时间执行,buildCondition同上, weekDays是和集合Monday-Sunday,哪天执行。-->
<!--<scheduleTrigger time="23:30" buildCondition="ForceBuild">
<weekDays>
<weekDay>Monday</weekDay>
</weekDays>
</scheduleTrigger>--> <!--什么时间,什么类型的Trigger不执行-->
<!--<filterTrigger startTime="23:30" endTime="23:45">
<trigger type="intervalTrigger" seconds="60" />
<weekDays>
<weekDay>Sunday</weekDay>
</weekDays>
</filterTrigger>--> <!--多个Trigger,operator如果是And那么任何一个Trigger没有执行,集成都不执行。
可选值是And 和Or-->
<!--<multiTrigger operator="And">
<triggers>
<intervalTrigger />
<filteredTrigger startTime="23:30" endTime="23:45" />
</triggers>
</multiTrigger>--> <!--由别的项目引起集成-->
<!--<projectTrigger serverUri="tcp://server:21234/CruiseManager.rem" project="Server">
<triggerStatus>Success</triggerStatus>
<innerTrigger type="intervalTrigger" seconds="30" buildCondition="ForceBuild"/>
</projectTrigger>--> <!--triggerStatus:引起集成的条件,可能的值有 Success, Failure, Exception and Unknown 6. Url Trigger
有制定的Url文件修改引起的集成,buildCondition可设为默认IfModificationExists-->
<!--<urlTrigger url="http://server/page.html" seconds="30" buildCondition="ForceBuild"/>-->
</triggers> <!--源码控制器配置-->
<sourcecontrol type="svn" autoGetSource="true">
<!--该项目的SVN路径-->
<trunkUrl>https://svn.code.sf.net/p/***</trunkUrl> <!--配置的这个目录将作为CruiseControl.NET的工作目 录,CruiseControl.NET会将代码从SVN中 check out到这个目录中.-->
<workingDirectory>D:\workspaces\WorkDemo</workingDirectory> <!--机器上的SVN的可执行文件路径-->
<executable>C:\Program Files (x86)\VisualSVN Server\bin\svn.exe</executable> <!--SVN的用户名与密码-->
<username>ifelse01</username>
<password>if01else</password> </sourcecontrol> <!--些列顺序执行的任务-->
<tasks>
<msbuild>
<!-- if you want the task to fail, ping an unknown server -->
<executable>C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe</executable> <workingDirectory>D:\workspaces\WorkDemo</workingDirectory> <projectFile>Work2013.sln</projectFile> <buildArgs>/noconsolelogger /p:Configuration=Debug /v:diag</buildArgs> <targets>Build</targets> <timeout>900</timeout> <!--记录编译日志-->
<logger>C:\Program Files (x86)\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MSBuild.dll</logger> </msbuild> <nunit> <path>C:\Program Files (x86)\TestDriven.NET 3\NUnit\2.5\nunit-console.exe</path> <!--需要确保文件夹路径存在-->
<outputfile>C:\CCNet\NunitResult\WorkDemo\nunit-results.xml</outputfile> <assemblies> <assembly>D:\workspaces\WorkDemo\WorkDemo.Tests\bin\Debug\WorkDemo.Tests.dll</assembly> </assemblies>
</nunit> <!--
executable:NANT的可执行文件路径.
buildFile:配置的build文件的路径.
-->
<!--<nant>
<executable>D:\workspaces\bin\nant\nant.exe</executable>
<buildFile>C:\CCNet\NAnt_KernelClass.build</buildFile>
</nant>--> </tasks> <!--执行一个程序, 可以在这里加载任何你需要执行的程序,比如Fxcop等-->
<!--示例1-->
<!--<exec executable="c:\projects\myproject\build.bat"/>-->
<!--示例2:-->
<!--<exec>
<executable>make</executable>
<baseDirectory>D:\dev\MyProject</baseDirectory>
<buildArgs>all</buildArgs>
<buildTimeoutSeconds>10</buildTimeoutSeconds>
</exec>--> <!--编译成功后,如何发布
sourceDir:源文件地址
publishDir:要发布到的地址
<useLabelSubDirectory>:是否每一个版本根据label标签创建一个字目录里并把发布内容放进去
-->
<!--<buildpublisher>
<sourceDir>C:\myprojects\project1</sourceDir>
<publishDir>\\myfileserver\project1</publishDir>
<useLabelSubDirectory>false</useLabelSubDirectory>
</buildpublisher>--> <!--编译成功后执行的任务-->
<publishers>
<statistics />
<xmllogger />
<!--
<email from="**@163.com" mailhost="smtp.163.com"
mailhostPassword="**" mailhostUsername="**@163.com" useSSL="false"
includeDetails="true"> -->
<!--用本地IIS发送-->
<email from="do-not-reply@local.com" mailhost="127.0.0.1" useSSL="false"
includeDetails="true">
<users>
<user name="**" address="**@qq.com" group="buildmaster" />
<user name="**" address="**@qq.com" group="developers" />
</users>
<groups>
<!-- always" - 只要编译发生
"change" - 编译的状态改变,成功到失败,或者失败到成功
"failed" - 编译失败
"success" -编译成功
Fixed: 当build的状态发成改变时发送(从“失败”到“成功”)
也可以这样写:<group name="developers" notification="change"/>
-->
<group name="developers">
<notifications>
<NotificationType>Failed</NotificationType>
<NotificationType>Exception</NotificationType>
</notifications>
</group>
<group name="buildmaster" >
<notifications>
<NotificationType>Always</NotificationType>
</notifications>
</group>
</groups>
</email>
<modificationHistory onlyLogWhenChangesFound="true" />
</publishers> </project> </cruisecontrol>

NAnt_KernelClass.build

 <?xml version="1.0"?>
<project name="KernelClass" default="build" basedir="D:\workspaces\KernelClass2008">
<property name="debug" value="true" overwrite="false" /> <!--删除bin 以及 obj文件夹-->
<target name="clean">
<delete dir="bin" failonerror="false"/>
<delete dir="obj" failonerror="false"/>
</target> <!--加了depends=”clean” 之后执行 build会首先执行clean的工作.
build完以后把dll复制到D:\workspaces\WorkDemo\WorkDemo.Tests\bin\Debug
-->
<target name="build" depends="clean">
<csc target="library" output="bin/debug/KernelClass2008.dll" debug="${debug}">
<sources>
<include name="*/*"/>
<!--exclude 这个是排除哪些文件不让其编译-->
<exclude name="NAnt_KernelClass.build" />
</sources>
</csc>
<copy todir="D:\workspaces\WorkDemo\WorkDemo.Tests\bin\Debug" flatten="true">
<fileset basedir=".">
<include name="bin/debug/KernelClass2008.dll" />
</fileset>
</copy>
</target>
</project>

每日集成CruiseControl.NET + SVN + Msbuild + NAnt的更多相关文章

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

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

  2. 每日构建【Daily Build Using CruiseControl.NET and MSBuild】(转载)

    在上一篇项目 管理实践教程二.源代码控制[Source Control Using VisualSVN Server and TortoiseSVN]中 我们已经讲解了如何使用TortoiseSVN和 ...

  3. 项目管理实践【三】每日构建【Daily Build Using CruiseControl.NET and MSBuild】

    在上一篇项目管理实践教程二.源代码控制[Source Control Using VisualSVN Server and TortoiseSVN]中我们已经讲解了如何使用TortoiseSVN和Vi ...

  4. CentOS7集成Apache和SVN

    本文主要介绍如何在CentOS7环境下集成Apache和SVN,完成后可以通过浏览器访问SVN仓库. 1.查看系统环境,关闭防火墙和SELinux. [root@Docker /]# systemct ...

  5. 在.NET 环境中实现每日构建(Daily Build)--ccnet,MSBuild篇(转载)

    每日构建,对我们团队来说一个全新的概念.随着项目开发的进展,在开发过 程需要及时反馈一些BUG和功能要求的处理情况.而在这种情况下每天或隔一段时间Build一个版本,工作量还是比较大的,所以就特别有必 ...

  6. 自动化部署-Jenkins+SVN+MSBuild

    这篇文章主要介绍下使用Jenkins实现自动化部署 下载 https://jenkins.io/download/ 安装 按步骤安装即可,下载的是windows版本,安装完成后,会看到这样一个正在运行 ...

  7. CCNet持续集成编译中SVN问题解决

    SVN问题 BUILD EXCEPTION Error Message: ThoughtWorks.CruiseControl.Core.CruiseControlException: Source ...

  8. Idea集成及使用svn插件

    1 idea集成svn 1.1 svn是什么? SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资 ...

  9. jenkins持续集成(windows slave+svn+.net)

    一.Windows slave配置 1.系统管理->节点管理->新建节点 2.节点列表中点击新增的节点名称按提示下载agent.jar, 在windows slave机器执行(copy页面 ...

随机推荐

  1. ngModelController的方法和属性的使用

    ngModelController方法 $render(); 当视图需要更新的时候会被调用.使用ng-model的指令应该自行实现这个方法. $isEmpty(value); 该方法用于判断输入值是否 ...

  2. Java常量池解析与字符串intern简介

    在Java应用程序运行时,Java虚拟机会保存一份内部的运行时常量池,它区别于class文件的常量池,是class文件常量池映射到虚拟机中的数据结构. 关于class文件常量池的部分可以参考之前的博文 ...

  3. tornado异步web请求

    1.为什么要使用异步web服务使用异步非阻塞请求,并发处理更高效. 2.同步与异步请求比较同步请求时,web服务器进程是阻塞的,也就是说当一个请求被处理时,服务器进程会被挂起直至请求完成. 异步请求时 ...

  4. 03、同事分享课程的笔记 —《Android应用低功耗设计》

    这是安卓组的同事一个月前分享的一节课程,听课时写了一下笔记,之前是写在本子上的,感觉内容挺不错 的,就保存在博客了吧,方便回看. 他曾经在就职于英特尔公司,是与芯片设计相关的,这课程标题虽然是与安卓相 ...

  5. swift侧开菜单

    此文来自学习这篇博客后的学习笔记,原博客是用oc写的,我最近在学swift,于是改写为swift. swift和oc之间互相调用还是很方便的,但是要注意AnyObject和optional的运用,我现 ...

  6. lua工具库penlight--09技术选择

    模块化和粒度 在理想的世界,一个程序应该只加载它需要的库.Penlight需要额外100 Kb 的字节码来工作.它是简单但却乏味要加载你需要什么: local data = require 'pl.d ...

  7. Spider Studio 界面功能布局

    SS是Spider Studio (采集工作站) 的简称, 这是由GDT团队开发的一款互联网数据采集开发工具. 它以浏览器为基础, 运用JQuery技术, 结合脚本化C#的强大功能, 能够轻松解决各类 ...

  8. 百度JS模板引擎

    1. 应用场景 前端使用的模板系统  或  后端Javascript环境发布页面 2. 功能描述 提供一套模板语法,用户可以写一个模板区块,每次根据传入的数据,生成对应数据产生的HTML片段,渲染不同 ...

  9. 燕十八mysql笔记

    mysql复习 一:复习前的准备 1:确认你已安装wamp 2:确认你已安装ecshop,并且ecshop的数据库名为shop 二 基础知识: 1.数据库的连接 mysql -u -p -h -u 用 ...

  10. 关于Unity中的新手编码技巧

    写代码遇到报错,问题怎么办?怎么查看unity代码的接口?函数参数不记得了怎么办? 解决方法: 1.选择不懂的函数或类,按F12,跳转到代码的定义,自己去看就可知道了. 2.有的时候,选择一个函数,按 ...