Search code examples
msbuildcruisecontrol

ASP.NET Project Build Script For SVN and Cruise Control


I have a project in ASP.NET MVC 3, the solution file contains 28 projects in total. This all is in a directory which is configured with tortoise SVN to always get the latest updates from SVN.

I have also installed curisecontrol on my VPS box, where these whole solution exist. I have also created a website in my IIS and everything is in order now.

Can anyone guide me into some tutorials for the following:

  • How to setup curise control web dashboard, so my clients can have look on the builds and its reports

  • How to use MSBuild with Cruise Control in some step by step tuts

  • Any sample build script with following features

  • Email notification on build fail or successful build

  • stop the deployment if build is not successfull and create a build report

Thanks in advance


Solution

  • How to use MSBuild with Cruise Control in some step by step tuts http://www.codeproject.com/Articles/12985/Practical-NET2-and-C-2-An-introduction-to-MSBuild

    By default, the web dashboard of ccnet displays the result of build without exact error messages. To display the error in web dashboard, go to “C:\Program Files\CruiseControl.NET\webdashboard” and open file “dashboard.config”.

    There, you will find the below code:

    Collapse | Copy Code xsl\header.xsl xsl\modifications.xsl xsl\unittests.xsl xsl\MsTestSummary.xsl xsl\fxcop-summary.xsl xsl\NCoverSummary.xsl xsl\SimianSummary.xsl xsl\fitnesse.xsl Now add this line in the above code:

    Collapse | Copy Code xsl\compile-msbuild.xsl Therefore the code will become:

    <buildReportBuildPlugin>
        <xslFileNames>
            <xslFile>xsl\header.xsl</xslFile>
            <xslFile>xsl\modifications.xsl</xslFile>
            <xslFile>xsl\compile-msbuild.xsl</xslFile>
            <xslFile>xsl\unittests.xsl</xslFile>
            <xslFile>xsl\MsTestSummary.xsl</xslFile>
            <xslFile>xsl\fxcop-summary.xsl</xslFile>
            <xslFile>xsl\NCoverSummary.xsl</xslFile>
            <xslFile>xsl\SimianSummary.xsl</xslFile>
            <xslFile>xsl\fitnesse.xsl</xslFile>
        </xslFileNames>
    </buildReportBuildPlugin> 
    

    We can also send the email to the user groups if the build fails.

     <workingDirectory>D:\Projects\TheWorks\Applications\ProjectFolder</workingDirectory>
               <buildArgs>ProjectName.msbuild /p:Configuration=Debug</buildArgs>
                <timeout>1800</timeout>
                <!--  30 minutes -->
        <logger>C:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MSBuild.dll
        </logger>
                </msbuild>
                </tasks>
                <publishers>
                    <statistics />
                    <xmllogger />
                    <email from="EMAIL ADDRESS" mailhost="HOSTNAME" 
                    mailhostPassword="PASSWORD" mailhostUsername="USERNAME" 
                    includeDetails="true">
                        <users>
                        <user name="Jitendra Zaa" 
                            address=ilovenagpur@gmail.com 
                            group="AdminGroup" />
                            <user name="Santosh Karemore" 
                            address=santosh.karemore@gmail.com 
                            group="AdminGroup" />
                            <user name="Manoranjan sahoo"
                            address=manoranjan.sahoo@gmail.com 
                            group="AdminGroup" />
                            <user name="Minal Shirsikar" 
                            address="admin@shivasoft.in" group="Emul" />
                        </users>
                        <groups>
                            <group name="Emul" notification="failed" />
                            <group name="AdminGroup" 
                                notification="failed" />
                        </groups>
                    </email>
                </publishers>
            </project>  
    

    The tags are self explanatory.

    There may be following types of notification:

    Failed Fixed Always