“...we implemented a *real* deployment process...” “...our confidence in the reliability and repeatability of the deployment process has been restored...” “...we can now react at the speed of business...” “...it's 2:45 AM your time?! Do you guys never sleep?” “...the best thing since sliced bread when it comes to managing projects and their environments...” “BuildMaster is a great tool for automating the build process, but stands head and shoulders above other tools...” “...extremely capable software, especially in an enterprise environment...” “...this is a very solid piece of software!” “...all of my projects are building wonderfully and are fully integrated into deployment...” “...manual, error-prone deployments are a thing of the past...” “BuildMaster is absolutely swell!” “...BuildMaster makes sense of incremental builds and their very liquid feature sets...” “BuildMaster made us re-think what proper deployment is...”

Labeling a Build

One of the easiest ways to not only enforce build immutability, but also have a history of what code files were used for a particular build, is to create a label with your Build Number whenever you create a build.

In some source control systems (SVN, CVS, etc.), a label is created by creating a fork (or branch) of the code. In others (TFS, Vault, etc), there is an operation called label. BuildMaster supports both operations through different actions:

image

Each of the actions depend on a Source Control Provider that you can add from the administration section. We support a whole bunch of source control systems, and they're all relatively easy to set-up. Here's the Create Source Control Provider page for AccuRev.

image

Once your source control is set-up, it's just a matter of combining two actions (either Branch + Get Latest or Label + Get Labeled) and using a variable (%BLDNO%). Here is what it looks like in our set-up of BuildMaster when we deploy to our integration environment:

image

We're using %RELNO%.%BLDNO% as the label, so when the action executes it will label /TRUNK with something like, 2.4.1.9. As an aside, you'll see that the fourth action in this group (Create File) is used to Automatically Version Assemblies with BuildMaster.

Once a build has gone through some initial testing, we'll promote to another testing environment. But as part of this process, we'll build without the DEBUG and other symbols. Since we've already labeled, we just get by label.

image