Build Automation Guidelines
Written by Mitch Denny
The purpose of this knowledge base article is to define the standards pertaining to names of build definitions, lab names and drop locations.
Generic Format for Build Definition Names
Readify Cloud uses the following generic format for build definition names:
[BranchName]_[ComponentName]_[Environment]
What is a [BranchName]?
[BranchName] is a string which uniquely identifies the location of source which this build uses to produce build outputs. Typically a team will target a specific branch when producing a build. The following list provides a location in source control and provides a sample of what the BranchName would be:
$/[Team Project]/Branches/FeatureA becomes FeatureA
$/[Team Project]/Trunk becomes Trunk
$/[Tream Project]/Releases/V1Beta1 becomes V1Beta1
What is a [ComponentName]?
[ComponentName] is a name which can logically identify the nature of the code being built. Often this will be the name of the solution that is being build (where just one solution is being built) or the overall descriptive name where multiple solutions are being built. For example:
$/[Team Project]/Trunk/MyApplication would have a [ComponentName] of MyApplication
What is a [EnvironmentName]?
This is an optional component which defines which environment this build will be deployed into where Lab Management is being used. Environment Names should represent the nature of the target environment and should align with the environment name inside MTM.
Bringing it Together
If we were building the Trunk for a solution called MyApplication and it was a lab build destined for a single server where the environment name within MTM was called W2K8R2SingleServer then the build definition name would be:
Trunk_MyApplication_W2K8R2SingleServer
Where it was a CI build (no lab target) this name would be:
Trunk_MyApplication
And the lab build definition would trigger the Trunk_MyApplication build as part of the process.
Drop Folders
Establishing Drop Folders correctly is critical for the security of the the environment where a single WebDAV endpoint is used to expose all drops. The following standard should be used for naming drop folders:
\\[drop server fqdn]\builds\[Team Project Collection Name]\[Team Project Name]\
This enables build drops and log files to be easily accessible from within the development environment and from external users without requiring VPN access.



