July 18, 2012

Build Process Overview

The build process is an art (ofcoruse an engineering process) of getting a shippable / deployable artifacts for any software product. The steps to create the installable component / artifact from the code base would remain the same irrespective of the Product Technology, Packaging Software, Build automation Tools and Source Control Software (TFS, Subversion, Seapine Surround etc.) used.
The build process is categorized into five main stages as described below

Key Point: Intimate the stake holders through an automated email on success or failure of the build, at any stage.

1.       Preparing the Build Environment

a.   Clean the Build Working directory (BuildScripts, Product / Installer source code, previous artifacts etc.
b.   Checkout the version header files (usually assembly info files), update it with the latest build number and check-in back to Source Control. This can be done with some 3rd party tool or even with a small in house tool
c.   Label the branch or create a snapshot branch
d.   Get the Product / Installer source from source control system based on the label or snapshot branch created in the previous step.

2.       Actual Build Process

a.   Compile the Product source
b.   For more than one installer, which requires independent Staging area, repeat the step 2b.
                             i.    Form the Staging area
                             ii.   Compile the installers / merge modules
                  [Note: Staging Area is the deployment structure with recently compiled assemblies and misc files in an organized folder structure.]

3.       Post Build Process

a.   Consolidate the logs to a common location
b.   Copy the reference merge modules / assemblies to the Artifacts folder and check-in
                             i.     Checkout the files / folder
                             ii.    Copy the reference merge modules / assemblies to the Artifacts folder
                             iii.   Check-in them back.
c.   Copy the Installers to Artifacts folder
d.   Compress the Artifacts, if required (7z works well for command line compression)
e.   Copy the Artifacts, Source Code etc to common release area for permanent archival and ftp the same if required.

4.      Deploying on Sandbox machine

             a.  Rever to the existing snapshot of the Sandbox machine
             b.  Copy the installer to the Sandbox machine
             c.  Install & Configure

5.      Running Automated Test Suite

             a.  Invoke the Automated Test Suite. On need basis, one or more Virtualized Images can be 
                  used for running / verifying the automation suite.

No comments:

Post a Comment