CruiseControl.Net学习记录

一、下载

官网

二、安装

本文版本:1.8.5.0

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

安装完毕之后,

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

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

三、启动

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

在IIS中配置启动webdashboard站点。

四、配置

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

 github(git协议)

 1 <cruisecontrol xmlns:cb="urn:ccnet.config.builder">
 2 
 3   <project name="ccnet.test" description="ccnet.test">
 4     <!--项目编译状态信息的保存位置-->
 5     <state type="state" directory="E:CCNetState" />
 6     <!--对这个项目的监控过程的日志记录目录-->
 7     <artifactDirectory>E:CCNetBuildArtifactsccnet.test</artifactDirectory>
 8     <!--源代码控制系统-->
 9     <sourcecontrol type="git">
10       <repository>git://github.com/shashoutian/ccnet.test.git</repository>
11       <branch>master</branch>
12       <executable>E:ProgramFilesGitcmdgit.exe</executable>
13       <committerName>shashoutian</committerName>
14       <committerEMail>shashoutian2008@126.com</committerEMail>
15       <workingDirectory>D:ProjectsGitProjectsccnet.test</workingDirectory>
16     </sourcecontrol>
17     <!--配置具体执行的任务-->
18     <tasks>
19       <exec>
20         <!-- if you want the task to fail, ping an unknown server -->
21         <executable>ping.exe</executable>
22         <buildArgs>localhost</buildArgs>
23         <buildTimeoutSeconds>15</buildTimeoutSeconds>
24         <description>Pinging a server</description>
25       </exec>
26 
27       <!--msbuild任务配置,用来编译项目-->
28       <msbuild>
29         <!--MSBuild.exe的路径-->
30         <executable>C:WindowsMicrosoft.NETFrameworkv4.0.30319MSBuild.exe</executable>
31         <!--源代码的存放位置,不配置的时候为默认值 -->
32         <workingDirectory>D:ProjectsGitProjectsccnet.testCCNet.Test</workingDirectory>
33         <!--要编译的项目名称 -->
34         <projectFile>CCNet.Test.sln</projectFile>
35         <!-- MSBuild编译时的参数,具体参数信息可以查看MSDN上的说明-->
36         <buildArgs>/p:VisualStudioVersion=14.0;Configuration=Debug;OutputPath=E:Publishccnet.test /v:diag</buildArgs>
37         <!--编译目标-->
38         <targets>Build</targets>
39         <!--超时时间-->
40         <timeout>900</timeout>
41         <!--日志记录模块-->
42         <logger>E:ProgramFilesCCNetCruiseControl.NETserverThoughtWorks.CruiseControl.MsBuild.dll</logger>
43       </msbuild>
44 
45       <!--发布和部署配置-->
46       <buildpublisher>
47         <sourceDir>E:Publishccnet.test\_PublishedWebsitesCCNet.Test</sourceDir>
48         <publishDir>E:Publishccnet.test\_PublishedWebsitesCCNet.Test</publishDir>
49         <useLabelSubDirectory>false</useLabelSubDirectory>
50         <alwaysPublish>false</alwaysPublish>
51       </buildpublisher>
52     </tasks>
53   </project>
54 
55 </cruisecontrol>

gitlab(ssh协议)

 1 <cruisecontrol xmlns:cb="urn:ccnet.config.builder">
 2   <!-- This is your CruiseControl.NET Server Configuration file. 
 3        Add your projects below! -->
 4   <project name="Disney" description="Disney ManageWeb">
 5     <!--分类-->
 6     <category>后台系统</category>
 7     <!--日志目录-->
 8     <state type="state" directory="C:CCNetState" />
 9     <artifactDirectory>C:CCNetBuildArtifactsDisney</artifactDirectory>
10     <!--源码控制-->
11     <sourcecontrol type="git">
12       <repository>git@gitlab.mtime-dev.com:partner/disney-mw.git</repository>
13       <branch>develop</branch>
14       <executable>C:Program Files (x86)Gitcmdgit.exe</executable>
15       <workingDirectory>D:GitProjectspartnerabc</workingDirectory>
16     </sourcecontrol>
17     <!--任务-->
18     <tasks>
19       <exec>
20         <!-- if you want the task to fail, ping an unknown server -->
21         <executable>ping.exe</executable>
22         <buildArgs>localhost</buildArgs>
23         <buildTimeoutSeconds>15</buildTimeoutSeconds>
24         <description>Pinging a server</description>
25       </exec>
26       <!--编译项目-->
27       <msbuild>
28         <executable>C:WindowsMicrosoft.NETFramework64v4.0.30319MSBuild.exe</executable>
29         <workingDirectory>D:GitProjectspartnerabcDisney.Manage.Web</workingDirectory>
30         <projectFile>Disney.Manage.Web.csproj</projectFile>
31         <logger>E:ccnetCruiseControl.NETserverThoughtWorks.CruiseControl.MSBuild.dll</logger>
32         <targets>Build</targets>
33         <timeout>900</timeout>
34         <!--/p 最后一对属性值后面不需要分号(切记)-->
35         <buildArgs>/p:OutputPath=E:BuildOutputdisney;Configuration=Release;Platform=AnyCPU</buildArgs>
36       </msbuild>
37       <!--发布到站点-->
38       <buildpublisher>
39         <sourceDir>E:BuildOutputdisney</sourceDir>
40         <publishDir>E:websitesdisney</publishDir>
41         <useLabelSubDirectory>false</useLabelSubDirectory>
42       </buildpublisher>
43     </tasks>
44     <publishers>
45       <xmllogger />
46       <artifactcleanup cleanUpMethod="KeepLastXBuilds" cleanUpValue="50" />
47     </publishers>
48   </project>  
49 </cruisecontrol>

五、配置节点详解

六、需要注意的问题

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

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

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】

原文地址:https://www.cnblogs.com/wangwangfei/p/5695993.html