The repositories describe resources different resources which are part of a build environment, like:
- A build controller: This resource collects build jobs and sends them to the build executors which process the jobs.
- A build executor: This resource processes a build job and executes the actual build.
The different resources can be combined into a relatively simple or small build system which may consist of only one or two machines, one for the build controller and one for the build executor, or they may be combined into a far more complicated environment which consist of many different services.
The code in the repositories will either create a Hyper-V virtual machine image or a Docker container. If however a different virtualization platform is desired changes can be made to the Packer configurations relatively easy to change the type of images that are generated.
The Calvinverse organisation contains a number of repositories with resources that can be used to create a build system. These resources fall into one of the following groups:
- Base resources - Resources on which other resources are based. For instance there are resources that define a VM with just an operating system installed and prepared. These base VM images will then be used by other resources as their base, thereby reducing the build times for these more advanced resources.
- Build resources - Resources which define parts of the build infrastructure, e.g. the build controller or build executors.
- Supporting resources - Resources which define parts of the infrastructure which support the work of the build resources, e.g. web servers.
In general at least some of the base and build resources are needed to build a functional build system. The other resources may be required if a larger build system needs to be created.