Continuous integration .NET manual
First, concept
Martin Fowler's article: Continent Integration Chinese Translation: Continuous Integration
Second, tools
Traditional tools: Visualstudio.Net, VisualsourceSafe, Rational Clearcase
Auto Compilation Tools: Nant, NantContrib
Return test tool: NUnit
Code Check Tool: FXCOP
Continuous integration tool: cruiseControl.net
Third, step
CruiseControl.NET Monitor the change of the remote version control system CRUISEControl.net call compilation tool to compile (NANT or VISUALSTUDIO.NET) After successfully call NUNIT to return to the test compilation After successfully call FXCOP to compile the results, Test results, the code check results are sent to the developer, the supervisor manager, and released to the website
Illustration:
All this is automatically carried out according to the prepared script
Fourth, the implementation example
Currently we use Clearcase
The master software is CruiseControl.net, its script file is CCNET.CONFIG
Configure a remote version control system
-
<
SourceControl Type
= "
Clearcase
">
<
ViewPath
>
D: / cc_view / use_tech_dept / platage development / 2 Implementation /NuCleus1.0/source
ViewPath
>
<
Uselabel
>
False
Uselabel
>
SourceControl
>
Configure compilation tool
-
<
Build Type
= "
Nant
">
<
EXECUTABLE
>
F: /software/agile.net/nant-0.85- Nightly/bin/nant.exe
EXECUTABLE
>
<
BaseDirectory
>
F: /software/agile.net/nant-0.85- nightly/bin
BaseDirectory
>
<
Buildfile
>
Y: /nucleus.build
Buildfile
>
<
Logger
>
Nant.core.xmllogger
Logger
>
-
<
TargetList
>
<
Target
>
build
Target
>
<
Target
>
FXCOP
Target
>
TargetList
>
build
>
Configuring test case
-
<
Tasks
>
-
<
NUnit
>
<
Path
>
D: / program files / NUnit 2.2 / bin / NUnit-console.exe
Path
>
-
<
askEMBLIES
>
<
askSEMBLY
>
Y: /newpdObject/testnewpdobject/bin/debug/testnewpdObject.exe
askSEMBLY
>
askEMBLIES
>
NUnit
>
Tasks
>
Configuration report
<
Publishers
>
-
<
XMLLogger
>
<
logdir
>
../web/log
logdir
>
-
<
Mergefiles
>
<
File
>
Y: /nucleus.xml
File
>
Mergefiles
>
XMLLogger
>
-
<
Email from
= "
Ajaxchelsea@163.com
"
Mailhost
= "
163.com
"
Includedetails
= "
True
">
<
Projecturl
> http://
Ajaxchelsea / CCNetWeb
Projecturl
>
-
<
Users
>
<
User
Name
= "
Buildguru
"
group
= "
Buildmaster
"
Address
= "
Ajaxchelsea@163.com
"/>
<
User
Name
= "
Chelsea
"
group
= "
Developers
"
Address
= "
Chelsea@chelseafc.com
"/>
<
User
Name
= "
Ajax
"
group
= "
Developers
"
Address
= "
Ajax@ajaxfc.com
"/>
Users
>
-
<
groups
>
<
group
Name
= "
Developers
"
Notification
= "
Always
"/>
<
group
Name
= "
Buildmaster
"
Notification
= "
Always
"/>
groups
>
>
Publishers
>
Where CruiseControl.NET does not provide the code check tool FXCOP, its document recommends using the NANT's
-
<
Target Name
= "
FXCOP
"
Depends
= "
build
">
<
EXEC
PROGRAM
= "
D: / Program Files / Microsoft FXCOP 1.30 / FXCOPCMD.EXE
"
CommandLine
= "
/p:y:/nucleus.fxcop /o :y :/nucleus.xml
"
Failonerror
= "
False
"/>
Target
>
Five, some prompts
CruiseControl.NET automatically records remote VIEW VIEW Monitoring Remote VOB actually in addition to monitoring remote version control systems can be done by nant, and CCNET is only responsible for monitoring changes and calls nant to configure Visualstudio.net to CCNET. Program "
DailyBuild Raiders Draco.net continues to integrate Java manual