一、下载

官网

二、安装

本文版本:1.8.5.0

运行安装程序,按照提示"下一步”,直到完成即可。

安装完毕之后,

生成一个windows服务,CruiseControl.NET Server ;

生成一个webdashboard网站(可自行在IIS中配置)。

三、启动

在服务管理控制台,启动服务CruiseControl.NET Server;也可以不启动windows服务,而采用ccnet.exe控制台程序,需以管理员身份运行。

在IIS中配置启动webdashboard站点。

四、配置

在server目录中的ccnet.config文件中进行项目配置。

github(git协议)

 <cruisecontrol xmlns:cb="urn:ccnet.config.builder">

   <project name="ccnet.test" description="ccnet.test">
<!--项目编译状态信息的保存位置-->
<state type="state" directory="E:\CCNet\State" />
<!--对这个项目的监控过程的日志记录目录-->
<artifactDirectory>E:\CCNet\BuildArtifacts\ccnet.test</artifactDirectory>
<!--源代码控制系统-->
<sourcecontrol type="git">
<repository>git://github.com/shashoutian/ccnet.test.git</repository>
<branch>master</branch>
<executable>E:\ProgramFiles\Git\cmd\git.exe</executable>
<committerName>shashoutian</committerName>
<committerEMail>shashoutian2008@126.com</committerEMail>
<workingDirectory>D:\Projects\GitProjects\ccnet.test</workingDirectory>
</sourcecontrol>
<!--配置具体执行的任务-->
<tasks>
<exec>
<!-- if you want the task to fail, ping an unknown server -->
<executable>ping.exe</executable>
<buildArgs>localhost</buildArgs>
<buildTimeoutSeconds>15</buildTimeoutSeconds>
<description>Pinging a server</description>
</exec> <!--msbuild任务配置,用来编译项目-->
<msbuild>
<!--MSBuild.exe的路径-->
<executable>C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe</executable>
<!--源代码的存放位置,不配置的时候为默认值 -->
<workingDirectory>D:\Projects\GitProjects\ccnet.test\CCNet.Test</workingDirectory>
<!--要编译的项目名称 -->
<projectFile>CCNet.Test.sln</projectFile>
<!-- MSBuild编译时的参数,具体参数信息可以查看MSDN上的说明-->
<buildArgs>/p:VisualStudioVersion=14.0;Configuration=Debug;OutputPath=E:\Publish\ccnet.test /v:diag</buildArgs>
<!--编译目标-->
<targets>Build</targets>
<!--超时时间-->
<timeout>900</timeout>
<!--日志记录模块-->
<logger>E:\ProgramFiles\CCNet\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll</logger>
</msbuild> <!--发布和部署配置-->
<buildpublisher>
<sourceDir>E:\Publish\ccnet.test\_PublishedWebsites\CCNet.Test</sourceDir>
<publishDir>E:\Publish\ccnet.test\_PublishedWebsites\CCNet.Test</publishDir>
<useLabelSubDirectory>false</useLabelSubDirectory>
<alwaysPublish>false</alwaysPublish>
</buildpublisher>
</tasks>
</project> </cruisecontrol>

gitlab(ssh协议)

 <cruisecontrol xmlns:cb="urn:ccnet.config.builder">
<!-- This is your CruiseControl.NET Server Configuration file.
Add your projects below! -->
<project name="Disney" description="Disney ManageWeb">
<!--分类-->
<category>后台系统</category>
<!--日志目录-->
<state type="state" directory="C:\CCNet\State" />
<artifactDirectory>C:\CCNet\BuildArtifacts\Disney</artifactDirectory>
<!--源码控制-->
<sourcecontrol type="git">
<repository>git@gitlab.mtime-dev.com:partner/disney-mw.git</repository>
<branch>develop</branch>
<executable>C:\Program Files (x86)\Git\cmd\git.exe</executable>
<workingDirectory>D:\GitProjects\partner\abc</workingDirectory>
</sourcecontrol>
<!--任务-->
<tasks>
<exec>
<!-- if you want the task to fail, ping an unknown server -->
<executable>ping.exe</executable>
<buildArgs>localhost</buildArgs>
<buildTimeoutSeconds>15</buildTimeoutSeconds>
<description>Pinging a server</description>
</exec>
<!--编译项目-->
<msbuild>
<executable>C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe</executable>
<workingDirectory>D:\GitProjects\partner\abc\Disney.Manage.Web</workingDirectory>
<projectFile>Disney.Manage.Web.csproj</projectFile>
<logger>E:\ccnet\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MSBuild.dll</logger>
<targets>Build</targets>
<timeout>900</timeout>
<!--/p 最后一对属性值后面不需要分号(切记)-->
<buildArgs>/p:OutputPath=E:\BuildOutput\disney;Configuration=Release;Platform=AnyCPU</buildArgs>
</msbuild>
<!--发布到站点-->
<buildpublisher>
<sourceDir>E:\BuildOutput\disney</sourceDir>
<publishDir>E:\websites\disney\</publishDir>
<useLabelSubDirectory>false</useLabelSubDirectory>
</buildpublisher>
</tasks>
<publishers>
<xmllogger />
<artifactcleanup cleanUpMethod="KeepLastXBuilds" cleanUpValue="50" />
</publishers>
</project>
</cruisecontrol>

五、配置节点详解

六、需要注意的问题

1、ccnet的webdashboard站点基于.net2.0运行;

2、ccnet通过git控制源代码时,需要首先确保在cmd命令行中可以执行git的各个命令,即需要配置环境变量Path:安装目录\Git\cmd,如 E:\ProgramFiles\Git\cmd;

3、使用github时,在ccnet.config中sourcecontrol节点的repository需采用git协议,而不是http协议和ssh协议,并且git协议获取的文件是只读的(待确认);如

<repository>git://github.com/shashoutian/ccnet.test.git</repository>

七、参考资料

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

.NET环境下每日集成系列

使用CruiseControl.NET进行自动化构建总结

每日集成CruiseControl.NET + SVN + Msbuild + NAnt

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

CruiseControl.Net学习记录的更多相关文章

  1. Quartz 学习记录1

    原因 公司有一些批量定时任务可能需要在夜间执行,用的是quartz和spring batch两个框架.quartz是个定时任务框架,spring batch是个批处理框架. 虽然我自己的小玩意儿平时不 ...

  2. Java 静态内部类与非静态内部类 学习记录.

    目的 为什么会有这篇文章呢,是因为我在学习各种框架的时候发现很多框架都用到了这些内部类的小技巧,虽然我平时写代码的时候基本不用,但是看别人代码的话至少要了解基本知识吧,另外到底内部类应该应用在哪些场合 ...

  3. Apache Shiro 学习记录4

    今天看了教程的第三章...是关于授权的......和以前一样.....自己也研究了下....我觉得看那篇教程怎么说呢.....总体上是为数不多的精品教程了吧....但是有些地方确实是讲的太少了.... ...

  4. UWP学习记录12-应用到应用的通信

    UWP学习记录12-应用到应用的通信 1.应用间通信 “共享”合约是用户可以在应用之间快速交换数据的一种方式. 例如,用户可能希望使用社交网络应用与其好友共享网页,或者将链接保存在笔记应用中以供日后参 ...

  5. UWP学习记录11-设计和UI

    UWP学习记录11-设计和UI 1.输入和设备 通用 Windows 平台 (UWP) 中的用户交互组合了输入和输出源(例如鼠标.键盘.笔.触摸.触摸板.语音.Cortana.控制器.手势.注视等)以 ...

  6. UWP学习记录10-设计和UI之控件和模式7

    UWP学习记录10-设计和UI之控件和模式7 1.导航控件 Hub,中心控件,利用它你可以将应用内容整理到不同但又相关的区域或类别中. 中心的各个区域可按首选顺序遍历,并且可用作更具体体验的起始点. ...

  7. UWP学习记录9-设计和UI之控件和模式6

    UWP学习记录9-设计和UI之控件和模式6 1.图形和墨迹 InkCanvas是接收和显示墨迹笔划的控件,是新增的比较复杂的控件,这里先不深入. 而形状(Shape)则是可以显示的各种保留模式图形对象 ...

  8. UWP学习记录8-设计和UI之控件和模式5

    UWP学习记录8-设计和UI之控件和模式5 1.日历.日期和时间控件 日期和时间控件提供了标准的本地化方法,可供用户在应用中查看并设置日期和时间值. 有四个日期和时间控件可供选择,选择的依据如下: 日 ...

  9. UWP学习记录7-设计和UI之控件和模式4

    UWP学习记录7-设计和UI之控件和模式4 1.翻转视图 使用翻转视图浏览集合中的图像或其他项目(例如相册中的照片或产品详细信息页中的项目),一次显示一个项目. 对于触摸设备,轻扫某个项将在整个集合中 ...

随机推荐

  1. CodeForces - 427A (警察和罪犯 思维题)

    Police Recruits Time Limit: 1000MS   Memory Limit: 262144KB   64bit IO Format: %I64d & %I64u Sub ...

  2. WebSocket技术

    webSocket技术 在html5技术革新中,加入了WebSocket技术 1.webSocket实际是TCP连接 webSocket在最初将发送http连接请求到服务器端, 但是在header中加 ...

  3. 传染病控制(codevs 1091)

    题目描述 Description [问题背景] 近来,一种新的传染病肆虐全球.蓬莱国也发现了零星感染者,为防止该病在蓬莱国 大范围流行,该国政府决定不惜一切代价控制传染病的蔓延.不幸的是,由于人们尚未 ...

  4. ip数据结构

    本文摘自 linux kernel ip.h,感谢开源的GNU struct ip { #if __BYTE_ORDER == __LITTLE_ENDIAN unsigned int ip_hl:4 ...

  5. Android中mesure过程详解

    我们在编写layout的xml文件时会碰到layout_width和layout_height两个属性,对于这两个属性我们有三种选择:赋值成具体的数值,match_parent或者wrap_conte ...

  6. 学习RSA公开密钥算法

    图为 RSA公开密钥算法的发明人,从左到右Ron Rivest, Adi Shamir, Leonard Adleman. 照片摄于1978年 (和讯财经原创) RSA加密算法是最常用的非对称加密算法 ...

  7. jar包和war包的区别

    jar包和war包的区别: jar包就是别人已经写好的一些类,然后将这些类进行打包,你可以将这些jar包引入你的项目中,然后就可以直接使用这些jar包中的类和属性了,这些jar包一般都会放在lib目录 ...

  8. 深入学习SQL的Limit语句

    一.基本语法 SQL的limit语法的如以下形式 SELECT * FROM table  LIMIT [offset,] rows | rows OFFSET offset 当省略offset的时候 ...

  9. 查看CPU是否支持虚拟化

    参考:http://www.cnblogs.com/jankie/archive/2012/07/04/2575695.html 一.Windows平台:使用cpu-Z即可查看. 二.Linux平台: ...

  10. hdu 2050:折线分割平面(水题,递归)

    折线分割平面 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...