Chapter 7. Remote and parallel build support

Table of Contents

Mechanism
Deadlock prevention

Mechanism

Let us suppose the following scenarios:

  1. Your product consists of components that should be built on different platforms. For example, in order to package your product, you need to build component1 on windows, build component2 on linux, and collect build result of them to form a single package.

  2. It may take a long time to build your product. Ideally, you may want to build different part of the product on different machine simultaneously, and then collect back build results of these parts to form a single product.

  3. Build a product on one machine, and send build result to another machine for smoking/automation tests. If tests pass, mark current build as successful;otherwise, mark it as failed.

QuickBuild can be used to handle these complicated scenarios quite easily. The key is a special repository type: QuickBuild. The QuickBuild system itself can be treated as a type of repository just like other repositories such as CVS. This is reasonable, cause repository is just a place holding artifacts which can be used during a build process. These artifacts can be source code saved in CVS repository, and can also be Jars or DLLs generated by and saved in a QuickBuild system. Several use cases are created to demonstrate how QuickBuild supports multi-platform remote builds.