Build and Release Framework:


Build and Release Framework also know as Build Configurator can be utilized by project teams for incorporation of Continuous Integration (CI) in their daily workflow. In the world of Agile Software Development and Management process a robust build and Continuous Integration is a common requirement. This framework targets project based on .NET Framework 2.0 or higher.
Recommended tools include CC.Net , MSBuild, NUnit, MSTest, Stylecop, FxCop, NDepend, CAT.Net and Source Code repository (SVN, Clearcase and VSTS). We recommend projects to use MSBuild over NAnt, as MSBuild is well supported from Microsoft and future releases as well. Build scripts generated starting from VS 2005 onwards are MSBuild scripts which makes the build setup very easy for most projects. MSBuild version 3.5 & above has multiprocessor support for faster builds. However for heterogeneous projects NAnt might make for a better option.
Although the scope of Continuous Integration can vary from project to project, framework comprises of common minimum set of recommended tools. Project teams can extend the framework to add additional tools based on this initial setup with minimal effort.
High level features include:
  • Web based Continuous Integration Configuration tool to configure the Build Server
  • Get the latest source from the repository (SVN, ClearCase,VSTS)
  • Source Checkout
  • Source Versioning
  • Compile the source (MSBuild)
  • Build Trigger settings
  • Scheduled Trigger
  • Filter Trigger
  • Interval Trigger
  • Build the databases (SQL Server)
  • Database creation and updating data (such as creating tables, views, stored procedures etc. and updating the objects using SQL files)
  • Run Automate Tests & generate Code Coverage report
  • Run the unit tests (NUnit, MSTest)
  • Produce code coverage results (NCover, MS Code Coverage)
  • Perform Code Quality and security Checks using
  • FxCop
  • Style Cop
  • NDepend
  • CAT.Net
  • Create source documentation
  • Build MSDN style documentation using SandCastle
  • Email Notification
  • Dashboard of Build Status
  • Creation of MSI Packages
  • Perform IIS Activities
  • Creation of Virtual Directory and App pool
  • Publishing Web sites
  • Multi server Deployment

Functional View

Key functions of the system Includes as follows
  • Collect the user inputs to configure the Build and release framework
  • Automatically create the folder structure that includes Bin, Build Log, Build Settings, Src folder
  • Extracting the Project related tools and projects to the build setting folder
  • Automatically generate the MS Build script file based on user selection
  • Updating the CCnet configuration file
  • Update the ccnet dashboard view setup


How To extend the Framework

You can extend the framework by modifying the targets.xml (core msbuild script) file which is under BuildConfiguratorBL\BuildTargets.
You have to create the appropriate Target in this MS build script file and call the target in “BuildAll” target in required order. Also if you want to create the GUI for added feature then you can modify it in default.aspx and need to create the sub class for the same in Build Paramater file.

UI Look and Feel

BcTool.png

BC2.png

Bc3.png

Next Version:-
The next version will include more functionality and Apis and more support of tools.

*If you want to contribute send an email to join this project .Follow my blog @ http://shreeman.spaces.live.com. and tweeter @sndshreeman.

Last edited Feb 26, 2010 at 3:21 PM by sndshreeman, version 6