Click here to Skip to main content
Click here to Skip to main content

Automate Builds using SVN, MSBuild, Cruise Control

, 6 Apr 2010 CPOL
Rate this:
Please Sign up or sign in to vote.
This tutorial explains how to automate the build with the help of SVN, MSBuild and Cruise control

Introduction

This article will explain how to use SVN, MSBuild, Cruise control and CCtray to automate the build process.

msbuild.xml

msbuild document is used to build the .NET solution file. Below is the snapshot of the msbuild document.

It starts with tag Project and we must have to import the msbuild path installed on our local system.

There are Target tags (can be more than one) and we can give them any name. The compiler will search for the tag Build and starts with that tag. Before that, it will go through the tags specified in DependsOnTarget.

1.JPG

Code Snap of msbuild.xml

Below is the code snippet displayed in the image to copy in your application.

<Project DefaultTargets="Build" 
	xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    
    <Import Project=
      "C:\Program Files\MSBuild\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"/>

    <Target Name="GetSource">
            <Message Text="Checking out trunk into $(SourceDirectory)" />
            <SvnCheckout RepositoryPath="PATH TO SVN" 
                LocalPath="LOCAL PATH TO FOLDER"
                UserName="USERNAME OF SVN"
                Password="PASSWORD OF SVN">
                <Output TaskParameter="Revision" PropertyName="Revision" />
            </SvnCheckout>
            <Message Text="Have got revision: $(Revision)"/>
        </Target>

    <Target Name="Build" DependsOnTargets="GetSource;Clean;" />
    
    <Target Name="Clean">
        <!-- Clean, then rebuild entire solution -->
        <MSBuild Projects="D:\Projects\SOLUTIONFILENAME.sln" Targets="Clean;Rebuild" /> 
    </Target>

</Project>

Configure Cruise Control

Now go to “C:\Program Files\CruiseControl.NET\server” and open “ ccnet.config

2.JPG

<cruisecontrol>
<project name="YOURPROJECTNAME">
         <webURL>http://SERVERIPADDRESS/ccnet/</webURL>

        <triggers>
            <intervalTrigger seconds="14400" buildCondition="ForceBuild" />
        </triggers>

        <tasks>
            <msbuild>
                <executable>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\MSBuild.exe
		</executable>
                <workingDirectory>PATH OF WORKING DIRECTORY</workingDirectory>        
                                <buildArgs>MSBUILDFILENAME.msbuild 
				/p:Configuration=Debug</buildArgs>
                <timeout>1800</timeout>
                <!--  30 minutes -->
                <logger>C:\Program Files\CruiseControl.NET\server\
			ThoughtWorks.CruiseControl.MSBuild.dll</logger>
            </msbuild>
        </tasks>
    </project>
    
</cruisecontrol>   

Now, configure the cc tray by passing the SERVERIPADDRESS as above XML document and click on build. If build is successful, then it will show a green symbol otherwise it will show a red symbol.

Configure CCTray

Step 1

go to File - >Settings

3.JPG

Step 2

Then in Build project tab, click on Add button.

4.JPG

Step 3

After that, click on Add Server button.

5.JPG

Step 4

Then in URL part, type the IP address of the server or localhost on which the ccnet is installed.

6.JPG

Step 5

When server is added, all the projects added in the configuration file will be displayed on the right side panel. Click on project to add in cctray.

7.JPG

In the next tutorial, I will discuss how to send email through ccnet and how to configure the web dashboard of ccnet.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

Jitendra Zaa
Software Developer (Senior) Cognizant Technology Solutions
India India
Having more than 7 years of experience in Programming and web application development.
 
Writing technical blog articles, learning new Programming languages , frameworks and sharing knowledge with others is one of my hobby. The more I learn, more I understood that how little I know and that drives me to dig into technology and languages to explore.
 
From last few years now, working on Salesforce platform and providing customer solutions using force.com as an Architect and Technical Lead Role. I have worked on many area of Salesforce like force.com, Heroku, PHP Toolkit, Partner Webservices, Metadata and Enterprise webservices, Tooling API, Customer Portal, Partner Portal, Community, Salesforce1 etc...
 
Blog:http://www.shivasoft.in/blog
Follow on   Twitter   LinkedIn

Comments and Discussions

 
GeneralMy vote of 5 PinmemberMember 17850917-Nov-12 1:48 
I am looking for using SVN and MSBuild - and I succeed

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Terms of Use | Mobile
Web01 | 2.8.141223.1 | Last Updated 6 Apr 2010
Article Copyright 2010 by Jitendra Zaa
Everything else Copyright © CodeProject, 1999-2014
Layout: fixed | fluid