November 23, 2011 Leave a comment
The build management process is also a key pillar of successful product release management.
We can launch the build almost any time, which means we do the check-in/check-out in a way that avoids breaking build. We don’t do continuous build, as we don’t really see the benefits of this in our case. The fact is we launch a build once we have implemented a consistent set of features and at least once every 6 weeks.
The build process, triggered by Team Foundation Server Build takes care of the following:
· Builds all binaries
· Obfuscate all binaries that are marked as obfuscated
· Signs all binaries using our company’s certificate (Authenticode)
· Builds final installation files (.MSI) and also signs them using Authenticode. We use WIX (http://wix.sourceforge.net/) to build the .MSI files. WIX files are in fact dynamically generated to automatically include numerous files we need to ship with the product, which can vary per build.
The whole process also handles Debug & Release variations as well as 32-bit and 64-bit platforms targets (see CodeFluent Entities & Bitness for a prospective in our context).
The build process relies on Team Foundation Server Build as the screenshot below illustrates:
As soon as we have delivered a new build, we also integrate platform tests and play the setup programs on various combinations of environments.
We don’t use all the possible variations but we mix them in ways that we are sure to test:
· Different OS versions including 32-bit and 64-bit,
· Different language versions,
· Different database versions,
· Different Visual Studio versions (we support 2008, 2010 and 11 developer preview as of today).