View Single Post
  #10  
Old 07-03-2008, 12:54 PM
mvermeulen mvermeulen is online now
Registered User
 
Join Date: 07-15-2003
Posts: 56
Send a message via Yahoo to mvermeulen
Had not seen this before but seems to be along the lines of what I have implemented at several locations. The basic premise of this is to maintained versioned templates for the build process including configuration, steps, actions, etc...

The versions are stored in a central source code repository (choose your favorite... VSS, SVN, ETC...)

The build process or Visual Build Project file uses a standard format and will perform the following basic steps on every project across the network.

1. PreLoad Step - Sets the version information for the current VBP application, project paths, config file paths (config, scripts, macros, steps) relative to the current server.

2. Performs a checkout/get from source control for the versions of the files that are used by the current build process.

3. Reloads all of the VBP files based upon what was retrieved from source control. (See example below)

Application.Options.Load "%configfilepath%\VisBuildPro.config"
Application.Macros(vbldMacroGlobal).Load "%configfilepath%\VisBuildPro.macros", True
Application.Scripts(vbldScriptGlobal).Load "%configfilepath%\VisBuildPro.Global.scripts"
Application.Project.Steps(vbldStepGlobalSubroutine ).Load "%configfilepath%\VisBuildPro.steps"

4. Calls a global subroutine step that loads/set macros and processes any other steps that are used throughout every build process. Project specific data is stored in an xml file and loaded during this phase.

Up to this point, every project is exactly the same in the way that it processes information. Only what it loads may be different.

5. Main section of build project executed. This may actually differ from project to project.

6. Cleanup phase - The remainder of the steps are stored in the global subroutines section and therefore identical from project to project. This may upload project info to a database, produce a build report, send mail, handle any error conditions, etc...

The main objective here is to not have to maintain VBP specific info on any machine but have the ability to download anything that is needed to any machine (given a default operating system and tool set) and roll out changes on a global basis as needed.
Reply With Quote